カスタム例外がキャッチされたキャッチしてみてください

まず、Exceptionクラスから継承MyExceptionクラスを作成します

コードは次のように実装されています。

MyExceptionメソッドと呼ばれる例外クラス、親クラスから継承され、エラーメッセージを返します。

1  パブリック クラス MyExceptionは延び例外{
 2  
3      公共MyException(文字メッセージ){
 4          スーパー(メッセージ)。
5      }
 6 }

ない場合は、関連するエラーを返し、そのような文字入力の使用は正の整数型であるかどうかを判定し、そうでない場合は、当該条件に応じて評価結果を返します。

トライキャッチを使用する場合は、例外throwステートメントで生成されたコードは、キャプチャされ、catch文することができます。(これは、撮影するためにスローされる必要があります)

例外がスローされる可能性のある例外を捕捉するために、トライコードブロックの内側に配置されなければならないがあるかもしれません。クラスキャッチが1つ以上のクラスに対応することがしてみますが、例外がキャプチャーキャッチ、他は実行されませんスローされます。

1  インポートjava.util.Scanner;
 2  
3人の。 パブリック クラスの生徒{
 4。     静的スキャナSC = NULL ;
 5。     
6。     静的 INTチェック(列C)がスローMyExceptionを{
 7。         IF(C.matches(「\\ ^ - [0-? 9] + $ ")){   // すべての整数と一致する
8。             スロー 新しい新 MyExceptionは("整数「を入力してください!);
 9          }
 10          IF((Integer.valueOf(C))> 100 ||(Integer.valueOf( C))<0 ){   
 。11           スロー 新しい新 MyException( "0〜100の整数を入力してください!" );
12          }
 13          
14          リターンInteger.valueOf(C);
15      }
 16      
17      公共 静的 ボイドメイン(文字列[]引数)を{
 18          のSystem.out.println( "输出一个整数请:" );
19          列C = NULL ;
20          
21          SC = 新しいスキャナ(System.in)。
22          C = sc.nextLine()。
23          試み{
 24          のint A = チェック(C)。
25          であれば(<= 100 && A> = 90 ){
 26             System.out.println( "优!" );
27          } 
 28          そう であれば(> = 80 && <90 ){
 29              のSystem.out.println( "良!" )。
30          } 
 31          そう であれば(> = 70 && <80 ){
 32              のSystem.out.println( "中!" )。
33          }
 34          そう であれば(> = 60 && <70 ){
 35          のSystem.out.println( "及格!" )。
36          }
 37          {
 38              のSystem.out。39          }
 40          }
 41          キャッチ(MyException電子){
 42              のSystem.out.println(e)前記
43          }
 44  
45  }
 46 }

スクリーンショットプログラムは次のよう:

 

 

 

 

 

 

 また、完全な文はまた、通常は、次の方法で実行しないであろう、実行キャッチ最後に文を、試してみてください。

1.異常がfinallyブロックで発生します。

上記のコードステートメント内でSystem.exit(0)の2.

3.プログラムが配置されているスレッド死

4.閉じるCPU

次のように参加finally文が実行されます。

1  インポートjava.util.Scanner;
 2  
3人の。 パブリック クラスの生徒{
 4。     静的スキャナSC = NULL ;
 5。     
6。     静的 INTチェック(列C)がスローMyExceptionを{
 7。         IF(C.matches(「\\ ^ - [0-? 9] + $ ")){   // すべての整数と一致する
8。             スロー 新しい新 MyExceptionは("整数「を入力してください!);
 9          }
 10          IF((Integer.valueOf(C))> 100 ||(Integer.valueOf( C))<0){   // 整数の所定の範囲内か否かを判定する
。11           スロー 新しい新MyException( "0と100の間の整数を入力してください!" );
 12である         }
 13はある         
14          リターンInteger.valueOf(C);
 15      }
 16      
17。     パブリック 静的 ボイドメイン(文字列[]引数){
 18である          のSystem.out.println( "出力整数てください" );
 19          列C = NULL ;
 20は、         
21である          SC = 新しい新しいスキャナ(System.in);
 22である          C = sc.nextLine();
 23である         トライ{
 24          のint A = チェック(C)
 25          IF(A <= 100 && A> = 90 ){
26              のSystem.out.println( "优!" );
27          } 
 28          そう であれば(> = 80 && <90 ){
 29              のSystem.out.println( "良!" )。
30          } 
 31          そう であれば(> = 70 && <80 ){
 32              のSystem.out.println( "中!" )。
33          }
 34          そう であれば(> = 60 && <70 ){
 35          のSystem.out.println( "及格!" )。
36          }
 37          {
 38              システム。);
 39          }
 40          }
 41が         キャッチ(MyException E){
 42である              )のSystem.out.println(E;   //は異常情報の出力キャプチャ
43である         }
 44が    最終的に{
 45         のSystem.out.println() "異常終了のチェックを!"。   // 最後にブロック実行
46     }
 47  }
 48 }

次の操作を行います。

 

 

 

おすすめ

転載: www.cnblogs.com/cxy0210/p/11761861.html