當(dāng)前位置:首頁(yè) > 嵌入式培訓(xùn) > 嵌入式學(xué)習(xí) > 講師博文 > Java中的throws與throw關(guān)鍵字
Java中的throws與throw關(guān)鍵字
時(shí)間:2014-08-19 來(lái)源:未知
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)來(lái)說(shuō),Java 編譯器會(huì)強(qiáng)迫你聲明在一個(gè)成員函數(shù)中拋出的異常的類(lèi)型。如果異常的類(lèi)型是Error或 RuntimeException, 或它們的子類(lèi),這個(gè)規(guī)則不起作用, 因?yàn)檫@在程序的正常部分中是不期待出現(xiàn)的。 如果你想明確地拋出一個(gè)RuntimeException,你必須用throws語(yǔ)句來(lái)聲明它的類(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è)自定義異常類(lèi)的例子:
class MyException extends Exception { //創(chuàng)建自定義異常類(lèi)
String message; //定義String類(lèi)型變量
public MyException(String ErrorMessagr) { //父類(lèi)方法
message = ErrorMessagr;
}
public String getMessage(){ //覆蓋getMessage()方法
return message;
}
}
public class Captor { //創(chuàng)建類(lèi)
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ā)生了其他的異常");
//輸出提示信息
}
}
}
華清遠(yuǎn)見(jiàn)90+項(xiàng)目獲批!教育部2021最新協(xié)同育人項(xiàng)目名
華清遠(yuǎn)見(jiàn)榮獲2021騰訊教育“年度口碑影響力職業(yè)教育品
華清遠(yuǎn)見(jiàn)受邀參加2021年武漢民辦高校信息學(xué)科合作聯(lián)盟
溫暖同行共創(chuàng)佳績(jī) 2019華清遠(yuǎn)見(jiàn)北京總部年會(huì)大曝光
助力高校AI人工智能學(xué)科建設(shè) 華清遠(yuǎn)見(jiàn)人工智能師資班
華清遠(yuǎn)見(jiàn)受邀參加四川省物聯(lián)網(wǎng)年會(huì),榮獲優(yōu)秀企業(yè)專(zhuān)家
