6

コードのデバッグに関して Udacity で受講しているオンライン コースの 1 つで、教授は、実際のコードで例外をスローする代わりにアサートを使用する方がよいと述べています。

私のプログラミングのキャリアを通して、誰もそれを使用しているのを見たことがありません.

なぜそれが実際にあるのか知っていますか?同意しますか?

PS:下の画像は Python コードですが、この考えはすべてのプログラミング言語に当てはまると思います。また、このコースは 4 か月しか経っていないため、教えられた方法は最も現代的なアプローチだと思います。

ここに画像の説明を入力

4

1 に答える 1

3

Assert はデバッグ専用で、ワンライナーで不変条件をチェックできます。アサートおよび同様のマクロは、フレームワークのテストで広く使用されています。例外はありますが、ライブラリやプログラムの残りの部分が何をしているのかを本当に気にする必要があります。アサートは非常に単純です。

何が原因であるかについてあいまいさなしにプログラムをクラッシュさせます-あなたの主張がそれを引き起こしました。デバッガーでそこに行く方が簡単です。例外がキャッチされてプログラムが停止しないか、通常は発生しない場所からのスタックの巻き戻し、すべてのデストラクタの呼び出しなどの副作用が発生する可能性があります。あなたがデバッグしているので。

例外では、スローする関数を宣言する必要があり、C++ などの言語で例外を有効にする必要があります。

テストケースをバッチモードで実行するだけでなく、インタラクティブにデバッグしている場合、および例がPythonである場合、pdbを起動してプログラムを停止する関数がより役立つと思います。

于 2013-02-23T23:02:08.090 に答える