日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

7-4 jmu-Java-06异常-04-自定义异常(综合) (15 分)

發布時間:2024/8/5 java 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 7-4 jmu-Java-06异常-04-自定义异常(综合) (15 分) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

定義IllegalScoreException異常類,代表分數相加后超出合理范圍的異常。該異常是checked exception,即希望該異常一定要被捕獲處理。

定義IllegalNameException異常類,代表名字設置不合理的異常。該異常是unchecked exception

定義Student類。

屬性:

private String name;
private int score;
方法:

toString //自動生成
setter/getter //自動生成
改造setName //如果姓名首字母為數字則拋出IllegalNameException
public int addScore(int score) //如果加分后分數<0 或>100,則拋出IllegalScoreException,加分不成功。
###main方法:

輸入new則新建學生對象。然后輸入一行學生數據,格式為姓名 年齡,接著調用setName,addScore。否則跳出循環。
setName不成功則拋出異常,并打印異常信息,然后繼續下一行的處理。
addScore不成功則拋出異常,并打印異常信息,然后繼續下一行的處理。如果2、3都成功,則打印學生信息(toString)
如果在解析學生數據行的時候發生其他異常,則打印異常信息,然后繼續下一行的處理。
Scanner也是一種資源,希望程序中不管有沒有拋出異常,都要關閉。關閉后,使用System.out.println(“scanner closed”)打印關閉信息
注意:使用System.out.println(e);打印異常信息,e為所產生的異常。

輸入樣例:

new zhang 10 new wang 101 new wang30 new 3a 100 new wang 50 other

輸出樣例:

Student [name=zhang, score=10] IllegalScoreException: score out of range, score=101 java.util.NoSuchElementException IllegalNameException: the first char of name must not be digit, name=3a Student [name=wang, score=50] scanner closed import java.util.*;public class Main{public static void main(String[] args) {Scanner sc = new Scanner(System.in);String s;while (true){s= sc.nextLine();if (s.equals("new")){Student stu=new Student();String s1=sc.nextLine();String[] ss=s1.split(" ");try {stu.setName(ss[0]);}catch (Exception e){continue;}try{stu.addScore(Integer.parseInt(ss[1]));}catch (Exception e){stu.flag=false;System.out.println("java.util.NoSuchElementException");}if (stu.flag) System.out.println(stu);}else if (s.equals("other")){break;}}sc.close();System.out.println("scanner closed");} }class IllegalScoreException extends RuntimeException{public IllegalScoreException() {}public IllegalScoreException(String message) {super(message);}}class IllegalNameException extends RuntimeException{public IllegalNameException() {}public IllegalNameException(String message) {super(message);} }class Student{private String name;private int score;boolean flag=true;public String getName() {return name;}public void setName(String name) {if (name.charAt(0)>='0'&&name.charAt(0)<='9'){try{throw new IllegalNameException("the first char of name must not be digit, name=");}catch (IllegalNameException e){flag=false;System.out.println(e+name);}}else {this.name = name;}}public int getScore() {return score;}public void setScore(int score) {this.score = score;}@Overridepublic String toString() {return "Student [" +"name=" + name +", score=" + score +']';}public int addScore(int score){this.score=this.score+score;if (this.score>100||this.score<0){try{throw new IllegalScoreException("score out of range, score=");}catch (IllegalScoreException e){flag=false;System.out.println(e.toString()+score);}}return this.score;} }

總結

以上是生活随笔為你收集整理的7-4 jmu-Java-06异常-04-自定义异常(综合) (15 分)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。