1. ホーム
  2. c++

[解決済み】アサートは悪なのか?[クローズド]

2022-04-30 10:55:38

質問

Go 言語クリエーター 書く :

Goはアサーションを提供しません。 しかし、私たちの経験では、プログラマは適切なエラー処理とレポートについて考えるのを避けるために、それを松葉杖のように使っています。適切なエラー処理とは、致命的でないエラーの後でも、サーバーがクラッシュすることなく動作を継続させることです。適切なエラー報告とは、エラーが直接的で要点をついており、プログラマーが膨大なクラッシュトレースを解釈する手間を省くことができることを意味します。プログラマーがコードに精通していない場合、正確なエラーは特に重要です。

これについては、どのようにお考えですか?

どのように解決するのですか?

いいえ、何も問題ありません。 assert を意図したとおりに使用する限りは、そのようなことはありません。

つまり、通常のエラー処理とは異なり、デバッグ時に "起こりえない"ケースをキャッチするためのものであるはずです。

  • アサートする。プログラムのロジック自体に不具合があること。
  • エラー処理。プログラムのバグによらない、誤った入力やシステム状態のこと。