最近、私は適切なチェック量と適切な方法とは何かを理解するのに苦労しています。
これに関していくつか質問があります。
エラー(不正な入力、不正な状態など)をチェックする適切な方法は何ですか?エラーを明示的にチェックするか、最終コードから最適化できるアサートなどの関数を使用する方が良いでしょうか?とにかくほとんどの状況で実行されるべきではない多くの余分なコードでプログラムを乱雑に明示的にチェックしたい気がします-そして、ほとんどのエラーは言うまでもなく打ち切り/終了の失敗に終わります。中止するために、明示的なチェックで関数を混乱させるのはなぜですか?私はアサートとエラーの明示的なチェックを探しましたが、どちらを行うべきかを本当に説明するものはほとんど見つかりませんでした。
ほとんどの人は、「アサートを使用して論理エラーをチェックし、明示的なチェックを使用して他の障害をチェックします」と言います。しかし、これは私たちをそれほど遠くに連れて行っていないようです。これが実現可能であると言えますか:
Malloc returning null, check explictly
API user inserting odd input for functions, use asserts
これにより、エラーチェックが改善されますか?他に何ができますか?私は本当に、より良い「プロフェッショナルな」コードを改善し、書きたいと思っています。
setjmp
/ longjmp
はCで使用できるため、新しい言語は必要ありません。