プログラムが例外をキャッチしてエラーを処理する準備ができていない場合はどうすればよいでしょうか?これはアサーション ステートメントで解決できます。
アサーション ステートメントは、コードのデバッグ段階で非常に役立ち、通常、プログラムが例外をキャッチして処理する準備ができていないエラーに使用されます。
たとえば、エラーが発生した場合、たとえば、口座の取引時に支出金額が正の数であるか、収入金額が負の数である場合、プログラムは実行を直ちに停止する必要があります。コードのデバッグ段階でアサーション ステートメントが機能するようにすると、プログラムが正式に実行されるときにアサーション ステートメントをオフにすることができますが、アプリケーションが必要に応じてソース コード内にアサーション ステートメントを残しておくことができます。将来再びデバッグできるように、アサーション ステートメントを再度有効にすることができます。
アサーション ステートメントを宣言するには、キーワードassert を使用します。アサーション ステートメントには次の 2 つの形式があります。
assertbooleanExpression;//ブール型に評価される式assertbooleanExpression:messageException;//文字列型に評価される式
値が true の場合、アサーション ステートメントからプログラムの実行が続行されます。
値が false の場合、プログラムの実行はアサーション ステートメントで停止します。
値が true の場合、アサーション ステートメントからプログラムの実行が続行されます。
値が false の場合、プログラムはアサーション ステートメントからの実行を停止し、messageException 式の値を出力して、どのような問題が発生したかをユーザーに通知します。
たとえば、アサーション ステートメントの場合は次のようになります。
アサート>=0;
式 i >= 0 の値が true の場合、プログラムは実行を続行します。式 i >= 0 の値が false の場合、プログラムは実行を直ちに終了します。
Java インタープリターを使用してアプリケーションを直接実行する場合、アサーション ステートメントはデフォルトでオフになります。プログラムのデバッグ時に-ea を使用してアサーション ステートメントを有効にできます。
java-eamainclass
例えば:
publicclassMain{publicstaticvoidmain(String[]args){int[]score={-120,98,96,94,92};intsum=0;for(intnumber:score){//for を使用して配列を走査しますassertnumber>= 0: 負の数値は成績にはできません;sum=sum+number;}System.out.println(合計スコア:+sum);}}
実行結果は次のとおりです。
合計スコア: 260