當(dāng)前位置:首頁(yè) > 嵌入式培訓(xùn) > 嵌入式學(xué)習(xí) > 講師博文 > Java中的throws與throw關(guān)鍵字
Java中的異常處理還是比較有意思的!就是該你管就你管,不是你該管的,好不要越級(jí)管理!不然我這級(jí)管理存在就沒(méi)有意義!
Java的異常處理是通過(guò)5個(gè)關(guān)鍵字來(lái)實(shí)現(xiàn)的:try,catch,throw,throws,finally。這里我主要說(shuō)一下throw,throws。
throws語(yǔ)句
throws總是出現(xiàn)在方法聲明時(shí),用來(lái)標(biāo)明該成員方法可能拋出異常。如果是多個(gè)異常,使用逗號(hào)隔開(kāi)。對(duì)大多數(shù)Exception子類來(lái)說(shuō),Java 編譯器會(huì)強(qiáng)迫你聲明在一個(gè)成員函數(shù)中拋出的異常的類型。如果異常的類型是Error或 RuntimeException, 或它們的子類,這個(gè)規(guī)則不起作用, 因?yàn)檫@在程序的正常部分中是不期待出現(xiàn)的。 如果你想明確地拋出一個(gè)RuntimeException,你必須用throws語(yǔ)句來(lái)聲明它的類型。
throw語(yǔ)句
throw總是出現(xiàn)在方法體中,用來(lái)拋出一個(gè)異常。程序會(huì)在throw語(yǔ)句后立即終止,它后面的語(yǔ)句執(zhí)行不到。通過(guò)throw拋出異常后,如果想在上一級(jí)代碼中來(lái)捕獲并處理異常,則需要在拋出異常的方法中使用throws關(guān)鍵字在方法聲明中指明要拋出的異常。
如果一個(gè)方法顯示的標(biāo)識(shí)拋出異常,則必須使用try—catch語(yǔ)句。
以下是一個(gè)自定義異常類的例子:
class MyException extends Exception { //創(chuàng)建自定義異常類
String message; //定義String類型變量
public MyException(String ErrorMessagr) { //父類方法
message = ErrorMessagr;
}
public String getMessage(){ //覆蓋getMessage()方法
return message;
}
}
public class Captor { //創(chuàng)建類
static int div(int x,int y) throws MyException{//定義方法拋出異常
if(y < 0){ //判斷參數(shù)是否小于0
throw new MyException("除數(shù)不能是負(fù)數(shù)");//異常信息
}
return x/y;//返回值
}
public static void main(String args[]){ //主方法
try{ //try語(yǔ)句包含可能發(fā)生異常的語(yǔ)句
div(3,-1);//調(diào)用方法
}catch (MyException e) { //處理自定義異常
System.out.println(e.getMessage()); //輸出異常信息
}
catch (Exception e) { //處理其他異常
System.out.println("程序發(fā)生了其他的異常");
//輸出提示信息
}
}
}