まず、定義
例外(例外):実行しているJava言語固有の実行時エラー処理メカニズムに対応する、特別なエラーオブジェクトを実行しているプログラムの異常状態を指します。
第二に、例外の2つの一般的な種類
• のRuntimeException(実行時例外):「間違った型変換」、「範囲外の配列インデックス」、「配列の境界」と「ヌルポインタ」を含むので、これはRuntimeExceptionは、しばしば誤った手順に起因している上、
• 非のRuntimeException(非実行時例外):主に「ファイルから読み出したデータに存在しない、」「ファイルの終わりを超えて読み取るために続け」、「存在しないURL」などを接続し、この非のRuntimeException IOExceptionが:通常、プログラム自体のような、行動につながるのではなく、コンパイル時に通常の環境要因によって引き起こされるコンパイラを、生成されます。
第三に、2つの方法で例外処理
①試し......キャッチして......(最後に)例外をキャッチ
試し{
異常が経験するかもしれ
} キャッチ{ 例外との契約を } 最後にプログラム出力の{}内容
(注:単独①tryをプログラムで使用することができない、各tryブロックは、異常の異なるタイプのオブジェクトを処理するために生成され得る1つの以上のcatch文を添付することができる。②finallyステートメントに関係なく、出口取り扱い均一な例外を提供します例外があったかどうか、ブロック内の最後に文はfinally文は何も出力がtryブロックで異常に遭遇されるかは問題であること、実行されません。)
②投げをしてスロー
公共 のボイド readFileの(Srtingファイル)がスローにFileNotFoundException {} // +戻り値の型メソッド名(パラメータリスト)+ +例外タイプリストをスロー:フォーマットを
第四に、イラスト
例:整数69を画定する、「T」と等しくない場合はASCIIコード表内の文字「T」は、同一であるか否かが判断される文字に対応するコード出力69の実行を継続します。throws IOExceptionこの判断の過程で発生する可能性があり、我々はこれらの2つの例外処理に近づく比較するには、この例を可決しました。
①試し......キャッチ......(最終的に)キャッチ例外への
インポートにjava.io.IOException; パブリック クラスExceptionTest { 公共の 静的な 無効読む(){ int型の A = 69 ; 試み{ しばらく(( CHAR!)) 'T' = { //は文字69 'T'を等しくするために対応するかどうかを決定する、等場合、コードの実行を継続 するSystem.out.println(( CHAR )); A = System.in.read() ; //はから文字を読み取る } } キャッチ(IOExceptionをE){ System.out.println( "ExceptionTest" ); } } パブリック 静的 ボイドメイン(文字列[]引数){ ExceptionTest.read()。 } }
②とスロー例外がスローされた インポートにjava.io.IOException; パブリック クラスExceptionTest { 公共 静的 ボイドを読む()スローのIOException { int型 = 69 A 、 一方((チャー!)= A 'T')を{ //が69に対応して決定されます文字が「T」に等しく、コードを実行し続けるような場合 のSystem.out.println((CHAR )); = System.in.read(); // から文字読み取り スロー 新しい新しい IOExceptionが()。 // メソッド本体では、追加の例外スロースローS(例外オブジェクトを必要とせず、省略することができます } System.out.println( "ExceptionTest" ); } パブリック 静的 ボイドメイン(文字列[]引数)がスローにIOException { ExceptionTest.readは(); } }