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

歡迎訪問 生活随笔!

生活随笔

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

生活经验

上机7 java异常处理,Java之异常处理【7】

發(fā)布時間:2023/11/27 生活经验 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 上机7 java异常处理,Java之异常处理【7】 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

異常:程序運行期(執(zhí)行期)出現(xiàn)的錯誤【不是語法錯誤】,是java提供的一種用于處理程序錯誤的機制。如:除0溢出,數(shù)組下標溢出、讀文件不存在。

Java程序執(zhí)行過程中如出現(xiàn)異常事件,系統(tǒng)自動的生成異常類對象,封裝了異常事件的信息并被提交給Java運行時系統(tǒng),成為‘’拋異常‘’。

當Java運行時系統(tǒng)收到異常時,會尋找能處理這一異常的代碼,并把當前異常交給其處理,稱為“捕獲異常”。

一、異常分類圖

Throwable:父類? Error和Exception是兩個子類。其中Error指系統(tǒng)異常,比如虛擬機異常,不需要處理。Exception又分為兩種,其中Runtime Exception指經(jīng)常出現(xiàn)的,比如除0溢出等,可以捕獲也可以不捕獲。其他的就要求必須要捕獲,常見的在jdk中看到方法后面跟了throws就必須catch.

public class TestException{

public static void main(String args[]){

int a[]={3,2,5};

//捕獲異常

try{

System.out.println(a[3]);}

catch(ArrayIndexOutOfBoundsException e){//e是異常對象,當檢測到異常的時候會系統(tǒng)自動初始化,交給Catch的代碼處理

System.out.println("系統(tǒng)正在維護。。。。");

e.printStackTrace();}//用來跟蹤異常事件發(fā)生時執(zhí)行堆棧的內(nèi)容

}}

二、五個關(guān)鍵字

try:可能發(fā)生異常的語句

catch:捕獲,并處理異常(printStackTrace()用來跟蹤異常事件發(fā)生時執(zhí)行堆棧的內(nèi)容)

throw:方法內(nèi)部拋異常

throws:聲明方法異常

final:代碼中無論是否有異常都會執(zhí)行,清除資源

public void someMethod()throws someException{

if(somecondition)

throw new someException(“錯誤原因”);

}

try{

someMethod(); //someMethod()方法明確拋異常,所以調(diào)用時必須要catch

}

catch(someMethod e)

{

}

try{

}

catch(someException1 e1){

}

try{

}

catch(someException2 e2){

}

finally{

}

執(zhí)行過程:1.e1->finally

2.e2->finally

3.無異常->finally

三、自定義異常類

步驟:

通過繼承java.lang.Exception類聲明自己的異常類

在方法適當?shù)奈恢蒙勺远x異常的實例,并用throw語句拋出

在方法的聲明部分用throws語句聲明該方法可能拋出的異常

package Exception;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.IOException;

class MyException extends Exception{

private int id;

private String message;

public MyException(String message,int id){

super(message);

this.id=id;

}

public int getID(){

return id;}

}

public class TestException {

public void regist(int i) throws MyException{

if(i<0)

throw new MyException("人數(shù)不合法。。",1);

else

System.out.println("num:"+i);

}

public void manger(){

try{regist(-50);}//regist()方法拋異常了,因此必須捕獲

catch(MyException e){

System.out.println("操作類型:"+e.getID());

e.printStackTrace();

}

System.out.println("操作結(jié)束!");

};

public static void main(String args[])

{

TestException test=new TestException();

test.manger();

}

/*int a[]={3,2,5};

try{

System.out.println(a[3]);}

catch(ArrayIndexOutOfBoundsException e){//e是異常對象,當檢測到異常的時候會系統(tǒng)自動初始化

System.out.println("系統(tǒng)正在維護。。。。");

e.printStackTrace();{}*/

}

結(jié)果:操作類型:1

操作結(jié)束!

Exception.MyException: 人數(shù)不合法。。

at Exception.TestException.regist(TestException.java:19)

at Exception.TestException.manger(TestException.java:24)

at Exception.TestException.main(TestException.java:34)

總結(jié)

以上是生活随笔為你收集整理的上机7 java异常处理,Java之异常处理【7】的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。