首先如果拋出jdk已有的異常,比如說拋出一個空指針異常,就這樣:
成都創(chuàng)新互聯(lián)公司專注于企業(yè)網(wǎng)絡(luò)營銷推廣、網(wǎng)站重做改版、翁牛特網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、H5場景定制、商城開發(fā)、集團公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)公司、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為翁牛特等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
throw new NullPointerException();這算拋出了一個空指針異常
throw new NullPointerException(“也可以在這里加一些異常信息描述”);
然后如果你想拋出一個自己定義好的異常,那么首先要聲明一個異常類,
然后拋出的方法一樣。
所謂異常,就是在程序的功能里面涉及到一些你不打算做的工作或者你沒辦法控制的情況,但是又不能不處理
比如,現(xiàn)在寫一個讀配置文件的程序,讀出配置文件的數(shù)據(jù)給另外一個程序用。在程序的用戶的電腦上,這個配置文件是不是存在,你沒法控制,你又不打算附帶做一個生成這個配置文件的功能。那么如果碰到它不存在的情況,這就是個異常。
拋異常,就是寫一個功能處理這個異常,然后把出現(xiàn)異常的那個代碼點轉(zhuǎn)到你的異常處理程序那邊去。
拋出異常是方法本身不進行處理這個異常需要調(diào)用方法的時候進行處理,捕獲異常是在方法本身自己將異常進行處理。
1、拋出異常是方法中聲明該方法可能出現(xiàn)的異常狀態(tài),利用throws關(guān)鍵字,捕獲異常是在已知方法中會產(chǎn)生,或不完全確定,但是可能會產(chǎn)生異常的情況下,對能產(chǎn)生異常的代碼部分進行的try catch處理。
2、假設(shè)方法A 聲明的時候有聲明拋出異常 void A() throws IOException那么在方法B中如果要調(diào)用A 只有2中策略可以B不處理,繼續(xù)拋出,交給下一個環(huán)節(jié)處理。B捕獲他,并處理
3、voidB()
{
try
{
A();//
}catch(IOExceptione)
{
//這里進行異常的處理,如果不想處理,不寫任何代碼也可以,但是不推薦。
直接throws Exception 寫在你的方法或者類名后
或者用try catch
在 Java 應(yīng)用程序中,異常處理機制為:拋出異常,捕捉異常。
拋出異常:當(dāng)一個方法出現(xiàn)錯誤引發(fā)異常時,方法創(chuàng)建異常對象并交付運行時系統(tǒng),異常對象中包含了異常類型和異常出現(xiàn)時的程序狀態(tài)等異常信息。運行時系統(tǒng)負(fù)責(zé)尋找處置異常的代碼并執(zhí)行。
捕獲異常:在方法拋出異常之后,運行時系統(tǒng)將轉(zhuǎn)為尋找合適的異常處理器(exception handler)。潛在的異常處理器是異常發(fā)生時依次存留在調(diào)用棧中的方法的集合。當(dāng)異常處理器所能處理的異常類型與方法拋出的異常類型相符時,即為合適 的異常處理器。運行時系統(tǒng)從發(fā)生異常的方法開始,依次回查調(diào)用棧中的方法,直至找到含有合適異常處理器的方法并執(zhí)行。當(dāng)運行時系統(tǒng)遍歷調(diào)用棧而未找到合適 的異常處理器,則運行時系統(tǒng)終止。同時,意味著Java程序的終止。
對于運行時異常、錯誤或可查異常,Java技術(shù)所要求的異常處理方式有所不同。
由于運行時異常的不可查性,為了更合理、更容易地實現(xiàn)應(yīng)用程序,Java規(guī)定,運行時異常將由Java運行時系統(tǒng)自動拋出,允許應(yīng)用程序忽略運行時異常。
對于方法運行中可能出現(xiàn)的Error,當(dāng)運行方法不欲捕捉時,Java允許該方法不做任何拋出聲明。因為,大多數(shù)Error異常屬于永遠(yuǎn)不能被允許發(fā)生的狀況,也屬于合理的應(yīng)用程序不該捕捉的異常。
Java語言提供兩種異常處理機制:捕獲異常和聲明拋棄異常。
1、捕獲異常:
(1)在Java程序運行過程中系統(tǒng)得到一個異常對象是,它將會沿著方法的調(diào)用棧逐層回溯,尋找處理這一異常的代碼。
(2)找到能夠處理這種類型異常的方法后,運行時系統(tǒng)把當(dāng)前異常交給這個方法處理;如果找不到可以捕獲異常的方法,則運行時系統(tǒng)將終止,相應(yīng)的Java程序也將退出。
(3)捕獲異常是通過try-catch-finally語句實現(xiàn)的。語法為:
try{
...
}catch(ExceptionName1 e){
...
}catch(ExceptionName2 e){
...
}
...
}finally{
...
}
2、聲明拋棄異常:
(1)當(dāng)Java程序運行時系統(tǒng)得到一個異常對象時,如果一個方法并不知道如何處理所出現(xiàn)的異常,則可在方法聲明時,聲明拋棄異常。
(2)聲明拋棄異常是在一個方法聲明中的throws子句中指明的。如:
public int read() throws IOException{
...
}
其中throws IOException就是聲明拋棄異常,throws后可以跟多個異常類型。
擴展資料:
程序設(shè)計語言的異常機制:
1、多數(shù)語言的異常機制的語法是類似的:用throw或raise拋出一個異常對象(Java或C++等)或一個特殊可擴展的枚舉類型的值(如Ada語言);
2、異常處理代碼的作用范圍用標(biāo)記子句(try或begin開始的語言作用域)標(biāo)示其起始,以第一個異常處理子句(catch, except, resuce等)標(biāo)示其結(jié)束;可連續(xù)出現(xiàn)若干個異常處理子句,每個處理特定類型的異常。
3、某些語言允許else子句,用于無異常出現(xiàn)的情況。更多見的是finally, ensure子句,無論是否出現(xiàn)異常它都將執(zhí)行,用于釋放異常處理所需的一些資源。
(1)C++異常處理是資源獲取即初始化(Resource-Acquisition-Is-Initialization)的基礎(chǔ)。
(2)C語言一般認(rèn)為是不支持異常處理的。Perl語言可選擇支持結(jié)構(gòu)化異常處理(structured exception handling)。
(3)Python語言對異常處理機制是非常普遍深入的,所以想寫出不含try, except的程序非常困難。
參考資料來源:
百度百科-異常處理