try{//當(dāng)代碼運(yùn)行時(shí)候可能會(huì)發(fā)生異常的句子}catch{//處理異常的代碼,讓程序在異常之后執(zhí)行該代碼}finally{無(wú)論是否有這里面的代碼都要執(zhí)行 通常是進(jìn)行資源清楚和關(guān)閉打開的文件等{throws 總是出現(xiàn)在方法的聲明中,用來(lái)標(biāo)明該方法可能會(huì)拋出的各種異常throw 總是出現(xiàn)在方法體中,用來(lái)拋出一個(gè)異常異常主要分:運(yùn)行時(shí)異常(RunTimeException 他的子類直接繼承它 而它本身繼承Exception)非運(yùn)行時(shí)異常(直接繼承Exception)在處理異常時(shí)候 可以使用多重catch 捕獲異常排列順序必須是從特殊到一般 最后一個(gè)是Exception類
創(chuàng)新互聯(lián)服務(wù)項(xiàng)目包括輝南網(wǎng)站建設(shè)、輝南網(wǎng)站制作、輝南網(wǎng)頁(yè)制作以及輝南網(wǎng)絡(luò)營(yíng)銷策劃等。多年來(lái),我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,輝南網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到輝南省份的部分城市,未來(lái)相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
肯定是在你需要對(duì)異常進(jìn)行處理的時(shí)候啊
舉個(gè)最常用的例子,線程的異常捕獲
基本上用線程大部分都會(huì) 進(jìn)行異常捕獲
比如在線程睡眠的時(shí)候使用下面這條語(yǔ)句拋出異常
Thread.currentThread().interrupt();
這時(shí)候如果直接print的話,就會(huì)打印IllegalThreadStateException異常
這時(shí)候如果你不想 打印這個(gè)異常,想寫個(gè)別的,比如打印一個(gè) HelloWord
在 catc語(yǔ)句塊中寫print("HelloWord")就行了
據(jù)我所知沒(méi)有專門的捕獲主鍵的異常\x0d\x0a你可以\x0d\x0atry{\x0d\x0a\x0d\x0a}catch(Exception ex){\x0d\x0a ex.printStackTrace();\x0d\x0a}\x0d\x0a捕獲異常之后,會(huì)在控制臺(tái)打印你所捕獲異常的信息。如果你只想捕獲主鍵異常的話,可以把打印出來(lái)的主鍵異常名稱來(lái)替換Exception. 其實(shí)效果是一樣的。。。
Java語(yǔ)言提供兩種異常處理機(jī)制:捕獲異常和聲明拋棄異常。
1、捕獲異常:
(1)在Java程序運(yùn)行過(guò)程中系統(tǒng)得到一個(gè)異常對(duì)象是,它將會(huì)沿著方法的調(diào)用棧逐層回溯,尋找處理這一異常的代碼。
(2)找到能夠處理這種類型異常的方法后,運(yùn)行時(shí)系統(tǒng)把當(dāng)前異常交給這個(gè)方法處理;如果找不到可以捕獲異常的方法,則運(yùn)行時(shí)系統(tǒng)將終止,相應(yīng)的Java程序也將退出。
(3)捕獲異常是通過(guò)try-catch-finally語(yǔ)句實(shí)現(xiàn)的。語(yǔ)法為:
try{
...
}catch(ExceptionName1e){
...
}catch(ExceptionName2e){
...
}
...
}finally{
...
}
2、聲明拋棄異常:
(1)當(dāng)Java程序運(yùn)行時(shí)系統(tǒng)得到一個(gè)異常對(duì)象時(shí),如果一個(gè)方法并不知道如何處理所出現(xiàn)的異常,則可在方法聲明時(shí),聲明拋棄異常。
(2)聲明拋棄異常是在一個(gè)方法聲明中的throws子句中指明的。如:
publicintread()throwsIOException{
...
}
其中throwsIOException就是聲明拋棄異常,throws后可以跟多個(gè)異常類型。
擴(kuò)展資料:
程序設(shè)計(jì)語(yǔ)言的異常機(jī)制:
1、多數(shù)語(yǔ)言的異常機(jī)制的語(yǔ)法是類似的:用throw或raise拋出一個(gè)異常對(duì)象(Java或C++等)或一個(gè)特殊可擴(kuò)展的枚舉類型的值(如Ada語(yǔ)言);
2、異常處理代碼的作用范圍用標(biāo)記子句(try或begin開始的語(yǔ)言作用域)標(biāo)示其起始,以第一個(gè)異常處理子句(catch,except,resuce等)標(biāo)示其結(jié)束;可連續(xù)出現(xiàn)若干個(gè)異常處理子句,每個(gè)處理特定類型的異常。
3、某些語(yǔ)言允許else子句,用于無(wú)異常出現(xiàn)的情況。更多見(jiàn)的是finally,ensure子句,無(wú)論是否出現(xiàn)異常它都將執(zhí)行,用于釋放異常處理所需的一些資源。
(1)C++異常處理是資源獲取即初始化(Resource-Acquisition-Is-Initialization)的基礎(chǔ)。
(2)C語(yǔ)言一般認(rèn)為是不支持異常處理的。Perl語(yǔ)言可選擇支持結(jié)構(gòu)化異常處理(structuredexceptionhandling)。
(3)Python語(yǔ)言對(duì)異常處理機(jī)制是非常普遍深入的,所以想寫出不含try,except的程序非常困難。
參考資料來(lái)源:
百度百科-異常處理
拋出異常是方法本身不進(jìn)行處理這個(gè)異常需要調(diào)用方法的時(shí)候進(jìn)行處理,捕獲異常是在方法本身自己將異常進(jìn)行處理。
1、拋出異常是方法中聲明該方法可能出現(xiàn)的異常狀態(tài),利用throws關(guān)鍵字,捕獲異常是在已知方法中會(huì)產(chǎn)生,或不完全確定,但是可能會(huì)產(chǎn)生異常的情況下,對(duì)能產(chǎn)生異常的代碼部分進(jìn)行的try catch處理。
2、假設(shè)方法A 聲明的時(shí)候有聲明拋出異常 void A() throws IOException那么在方法B中如果要調(diào)用A 只有2中策略可以B不處理,繼續(xù)拋出,交給下一個(gè)環(huán)節(jié)處理。B捕獲他,并處理
3、voidB()
{
try
{
A();//
}catch(IOExceptione)
{
//這里進(jìn)行異常的處理,如果不想處理,不寫任何代碼也可以,但是不推薦。
首先自定義一個(gè)異常類
public class ActionException extends Exception{
public String returnMessage;
public ActionException(String returnMessage){
this.returnMessage = returnMessage;
}
public String getReturnMessage(){
return this.returnMessage;
}
代碼中如果用到這個(gè)自定義的異常類,這里的代碼只是做了個(gè)演示
private void validate(int a,int b)throws ActionException{
if(ab){
throw new ActionException("a b");
}
if(ab){
throw new ActionException("a b");
}
}
業(yè)務(wù)邏輯代碼中
public String process(){
try{
validate(a,b);
}catch(ActionException ae){
System.out.println(ae.getReturnMessage());
}
}
本文題目:java代碼捕獲異常 java拋出異常和捕獲異常
本文URL:http://muchs.cn/article0/hjecoo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作、手機(jī)網(wǎng)站建設(shè)、微信小程序、Google、網(wǎng)站內(nèi)鏈、小程序開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)