トピックス要件:入力値出力90-100「優秀」、80〜90個の出力「良い」、70〜80出力「」、60〜70個の出力「パス」、0-60出力「」失敗し、他のインプットキャプチャ例外と適切な情報を要求します。
コードは以下の通りであります:
1つの インポートjava.util.Scanner。 2 3 @SuppressWarnings( "シリアル" ) 4 // 自定义异常类 5 クラス TryExceptionが延び例外 6 { 7 / ** 8 * 9 * / 10 プライベート 静的 最終 長いのserialVersionUID = 1L 。 11 公衆TryException(文字メッセージ){ 12 超(メッセージ)。 13 } 14 } 15の 16 パブリック クラス{TryTheWrong 17。 静的 =スキャナ新しい新しいスキャナ(System.in); 18である パブリック 静的 ボイドメイン(文字列引数[]){ 19。 // キャッチ試みる実行 20である トライ{ 21は JudgeError(); 22である } 23れる キャッチ(TryException E) { 24 // 出力カスタム例外情報 25 のSystem.out.println(e.getMessage()); 26れる } 27 } 28 // 操作入力値を含む方法、およびバックスローするように供給される異常情報の値の決意カスタム例外クラス 29 パブリック 静的な 無効JudgeError()がスローTryException 30 { 31である 文字列S = in.next(); 32 文字列M = "^ [0-9] * $" ; 33である // すべての数字かどうかを判断する 34である IF!(S.matches(M) ){ 35 投 新しい新 TryException( "入力含有非数値エントリ" ); 36 } 37 // 文字列がintトランスフェクトされた 38である INT I = Integer.valueOf(S)、 39 IF(I> 100 ){ 40 投 新しい新 TryException(「入力値が「100未満0以上である); 41 } 42 もし(I> = 90 iは<&& = 100 ){ 43 のSystem.out.println( "优" )。 44 } 45 そう なら(I> = 80 iは<&& 90 ){ 46 のSystem.out.println( "良" )。 47 } 48 そう なら(I> = 70 iは<&& 80 ){ 49 のSystem.out.println( "中" )。 50 } 51 そう なら(I> = 60 iは<&& 70 ){ 52 のSystem.out.println( "及格" )。 (I> = 0 && iが60 < ){ 55 のSystem.out.println( "不及格" )。 56 } 57 他{ 58 のSystem.out.println( "ERROR" )。 59 } 60 } 61 }
キャプチャし、新たな異常情報のフィードバックをスローするようにsuper()を使用して、カスタム例外クラスのTryExceptionを作成し、最後にキャッチ経由のSystem.out.println(e.getMessage());出力。この操作を適用することで、クラス(JudgeError)はクラス名(TryException)に対応するスローことに留意されたいです。入力が未知であるので、入力操作を行う際に、すべての数か否かを判断する正規表現による第1の文字列を入力として、文字列をintに変換され、それはかどうかが判定結果に応じて、100よりも大きいか否かを判断する、数値以外の元素を含んでいてもよいです場合は、他のフィードバック例外情報は、問題がなければ、操作、出力正しい結果場合は、以下に進みます。