0

私は通常、例外処理を使用して、例外を適切にスローし、アプリケーションをクラッシュさせることなく処理します。

どこでもアサーションを使用するコードを継承しましたが、アサーションが失敗するたびに、アサーション失敗エラーでアプリがデバッグ中に頻繁にクラッシュします。

多くの場合、これらのアサーションは何かが null でないかどうかをチェックしており、null の場合は assertion failed でクラッシュします。

これは、行うことに比べて完全に逆効果に思えますif(var!=null)が、何か不足していますか? このコード設計パラダイムについて何か目新しいものを見逃していますか?

私の現在の主張は、すべてのassert呼び出しをコメントアウトする必要があり、問題のエラーは代わりに null 変数をチェックする必要があるということです。

この質問に対する実際の答えがあることを期待してこれを書きました、ありがとう!

4

1 に答える 1

1

アサーションは、絶対に起きてはならないことです。アサーションは状態をチェックするためのものではありませんが、絶対に起こらないだろうという強い仮定をチェックするためのものです。アサーションを使用する場合は、デバッグ用に有効にしますが、製品コードには使用しないでください。

したがって、null チェックにアサーションを使用するのは最悪の考えです。なぜなら、Java では null 値がいたるところにあるからです。より良い使用if(object == null)

于 2013-07-30T18:09:36.673 に答える