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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

java异常例子_java 异常的实例详解

發布時間:2023/11/27 生活经验 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java异常例子_java 异常的实例详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

java 異常的實例詳解

1、異常的定義:程序在運行時出現不正常情況。

異常的劃分:

Error:嚴重的問題,對于error一般不編寫針對性的代碼對其進行處理。

Exception:非嚴重的問題,對于exception可以使用針對性的處理方式進行處理。

2、異常的處理:(固定格式)

try

{需要被檢測的代碼;}

catch(異常類 變量)

{處理異常的代碼(處理方式);}//這里應當是要有針對性的處理方式

finally

{一定會執行的語句;}//通常是關閉資源的代碼,因為資源必須得到釋放

對多異常的處理方式:

1、聲明異常時,建議聲明更為具體的異常,這樣處理起來就更加的具體。

2、對方聲明幾個異常,就對應及格catch塊,不要定義多余的catch塊,如果多個catch塊中的異常出現繼承關系,父類異常catch塊放在最下面。

*在進行catch處理時,catch中一定要定義具體的處理方式。

*catch是用于處理異常,如果沒有catch就代表異常沒有被處理過,如果該異常是檢測時異常,那么必須聲明。

Runtime異常:(即運行時異常)

是Exception中一個特殊的子類異常。

如果在函數內拋出該異常,函數上可以不用聲明,編譯一樣通過;如果在函數上聲明了該異常,調用者可以不用進行處理,編譯一樣通過。

之所以用在函數上聲明,是因為不需要讓調用者處理。

異常在子父類覆蓋中的體現;

1,子類在覆蓋父類時,如果父類的方法拋出異常,那么子類的覆蓋方法,只能拋出父類的異常或者該異常的子類。

2,如果父類方法拋出多個異常,那么子類在覆蓋該方法時,只能拋出父類異常的子集。

3,如果父類或者接口的方法中沒有異常拋出,那么子類在覆蓋方法時,也不可以拋出異常。

如果子類方法發生了異常。就必須要進行try處理。絕對不能拋。

throws 和 throw 的區別:

throws:使用在函數上(小括號和大括號之間),后面跟的是異常類,可以跟多個。中間用“,”(逗號)隔開。

throw: 使用在函數內,后面跟的是異常對象。throw后面不能加語句,因為throw后面的語句無法執行到。

習題練習:

/*需求:畢老師用電腦上課。

分析:

先寫出正常運行時的代碼:電腦開機后上課

分析電腦會出現的問題,如:藍屏,冒煙

此時需要自定義兩個“藍屏,冒煙“”自定義異常,封裝成對象。

藍屏后,電腦重啟,之后繼續上課

電腦冒煙后,出現了老師的問題,不能上課了,可以先做練習,畢老師將問題拋給校長。此時拋出的問題不再是電腦冒煙,而應該是老師不能上課了

問題拋給校長后,校長catch后給出解決方案

*/

class LanPingException extends Exception //自定義藍屏異常

{

LanPingException(String message)

{

super(message);

}

}

class MaoYanException extends Exception//自定義冒煙異常

{

MaoYanException(String message)

{

super(message);

}

}

class NoclassException extends Exception//自定義不能上課異常

{

NoclassException(String message)

{

super(message);

}

}

class Computer

{

private int state = 2;//硬性規定電腦狀態

//問題是在運行時發生的,所以得定義在運行時

public void run()throws LanPingException,MaoYanException//因為有可能出現錯誤,所以必須先聲明

{

if (state==2)

{

throw new LanPingException("電腦藍屏了。。。");//因為電腦不能自己處理,所以拋給了老師

}

if (state==3)

{

throw new MaoYanException("電腦冒煙了。。。");

}

System.out.println("電腦開機,運行中。。。。");

}

public void restart()

{

System.out.println("電腦重啟。。。。");

}

}

class Teacher

{

private String name;

private Computer comp;

Teacher(String name)

{

this.name = name;

comp = new Computer();//初始化時老師就有電腦了

}

public void test()

{

System.out.println("做練習");

}

public void teach() throws NoclassException//標識應該是拋出去的異常,能夠進行處理的

{

try

{

comp.run();//講課,要先開啟電腦

}

catch (LanPingException e)//拋出了兩個異常,必須用兩個catch

{

System.out.println(e.getMessage());

comp.restart();

}

//這個問題拋給老師的話依舊無法解決,應該拋出對應的問題,這里老師拋出的問題應該是不能上課了

catch (MaoYanException e)

{

test();//不能上課,可以先布置練習,這個必須在throw 之前,因為throw之后的語句不會執行

throw new NoclassException(e.getMessage()+",無法繼續上課");

}

System.out.println(name+",上課中。。。。");

}

}

class ExceptionTest

{

public static void main(String[] args)

{

Teacher t = new Teacher("畢老師");//指定一個老師

try

{

t.teach();//老師運行這個方法

}

catch (NoclassException e)//抓住對應的拋出的問題

{

System.out.println(e.toString());//打印出問題原因

System.out.println("自習或者放假");//處理辦法

}

}

}

當電腦狀態為1時,輸出為:

電腦開機,運行中。。。。

畢老師,上課中。。。。

當電腦狀態為2時,輸出為:

電腦藍屏了。。。

電腦重啟。。。。

畢老師,上課中。。。。

當電腦狀態為3時,輸出為:

做練習

NoclassException: 電腦冒煙了。。。,無法繼續上課

自習或者放假

如有疑問請留言或者到本站社區交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

總結

以上是生活随笔為你收集整理的java异常例子_java 异常的实例详解的全部內容,希望文章能夠幫你解決所遇到的問題。

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