最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

java自定義異常

2022-07-09 21:34 作者:虛云幻仙  | 我要投稿

/**
* 自定義異常
*/

public class Test05 {
}
class IllegalAgeException extends Exception{
? ?//非法年齡異常類 繼承異常類
? ?public IllegalAgeException(){}
? ?//無參構(gòu)造器
? ?public IllegalAgeException(String message){
? ? ? ?//message中放異常的信息/描述
? ? ? ?super(message);
? ? ? ?//調(diào)用父類的有參構(gòu)造器 構(gòu)造器不能繼承 不寫時(shí)默認(rèn)第一行super()調(diào)用無參構(gòu)造器
? ?}
}

class IllegalNameException extends Exception{
? ?public IllegalNameException(){}
? ?public IllegalNameException(String message){
? ? ? ?super(message);
? ?}
}
class Adult{
? ?String name;
? ?int age;

? ?public void setAge(int age){
? ? ? ?if (age<19){
? ? ? ? ? ?try {
? ? ? ? ? ? ? ?throw new IllegalAgeException("年齡需滿18周歲");
? ? ? ? ? ? ? ?//對數(shù)值進(jìn)行限制 當(dāng)這里拋出新的異常對象時(shí) checked exception提示將這個異常進(jìn)行try/catch處理或者Add exception to method signature 向方法簽名添加異常
? ? ? ? ? ?} catch (IllegalAgeException e) {
? ? ? ? ? ? ? ?//try嘗試拋出 new IllegalAgeException ?catch這個new的exception用IllegalAgeException引用變量e指向 ?并且執(zhí)行{拋出new運(yùn)行時(shí)異常}
? ? ? ? ? ? ? ?throw new RuntimeException(e);
? ? ? ? ? ?}
? ? ? ?}
? ? ? ?this.age = age;
? ?}

? ?public void setName(String str) throws IllegalNameException{
? ? ? ?//對方法內(nèi)的new異常 通過throws拋出
? ? ? ?if (str==""){
? ? ? ? ? ?throw new IllegalNameException("需要輸入有效字符");
? ? ? ?}
? ? ? ?name = str;
? ?}

? ?public static void main(String[] args) {
? ? ? ?Adult a = new Adult();
? ? ? ?a.setAge(-1);
? ? ? ?/*
? ? ? ?Exception in thread "main" java.lang.RuntimeException: IllegalAgeException: 年齡需滿18周歲
? ? ? ? ? at Adult.setAge(Test05.java:27)
? ? ? ? ? at Adult.main(Test05.java:35)
? ? ? ?Caused by: IllegalAgeException: 年齡需滿18周歲
? ? ? ? ? at Adult.setAge(Test05.java:24)
? ? ? ? ? ... 1 more

? ? ? ?Process finished with exit code 1
? ? ? ?程序通過了編譯 但在運(yùn)行(Test05.java:35行)時(shí)throw異常 屬于運(yùn)行時(shí)異常 : 冒號后是異常的信息 在setAge()方法內(nèi)拋出的IllegalAge異常已被catch處理 但(Test05.java:27行)new Runtime異常叫停了進(jìn)程
? ? ? ?throw new RuntimeException(e); 將IllegalAge異常對象e傳參進(jìn) RuntimeException()構(gòu)造方法中
? ? ? ?new Runtime異常的原因Caused by IllegalAge異常: 異常的信息
? ? ? ?在(Test05.java:24行) throw new IllegalAgeException("年齡需滿18周歲");
? ? ? ? */


? ? ? ?try {
? ? ? ? ? ?a.setName("");
? ? ? ? ? ?//checked exception提示處理非法命名異常
? ? ? ?} catch (IllegalNameException e) {
? ? ? ? ? ?e.printStackTrace();
? ? ? ? ? ?//打印棧跟蹤信息
? ? ? ? ? ?System.exit(-1);
? ? ? ? ? ?//系統(tǒng)退出返回-1異常退出
? ? ? ?}
? ? ? ?/*
? ? ? ?IllegalNameException: 需要輸入有效字符
? ? ? ? ? at Adult.setName(Test05.java:43)
? ? ? ? ? at Adult.main(Test05.java:66)

? ? ? ?Process finished with exit code -1
? ? ? ?異常類:信息
? ? ? ?(Test05.java:43) throw new IllegalNameException("需要輸入有效字符");
? ? ? ?(Test05.java:66) a.setName("");
? ? ? ?這里的異常退出是手動在catch{}語句塊中添加的 沒有這一項(xiàng)的話進(jìn)程會在catch異常后繼續(xù)往下運(yùn)行至結(jié)束
? ? ? ? */


? ?}
}

java自定義異常的評論 (共 條)

分享到微博請遵守國家法律
达州市| 珠海市| 滕州市| 岳阳县| 贵港市| 周至县| 太保市| 汾西县| 始兴县| 永州市| 南陵县| 徐闻县| 东源县| 孝感市| 崇仁县| 洞口县| 子洲县| 鄂州市| 宾川县| 洛隆县| 长宁县| 武冈市| 临夏市| 菏泽市| 杭锦后旗| 温泉县| 百色市| 晋江市| 通城县| 潮安县| 政和县| 连云港市| 安吉县| 郯城县| 宣化县| 海门市| 鱼台县| 太保市| 偏关县| 工布江达县| 五家渠市|