Java throw:异常的抛出
到目前為止,你只是獲取了被Java運行時系統(tǒng)拋出的異常。然而,程序可以用throw語句拋出明確的異常。Throw語句的通常形式如下:
throw ThrowableInstance;
這里,ThrowableInstance一定是Throwable類類型或Throwable子類類型的一個對象。簡單類型,例如int或char,以及非Throwable類,例如String或Object,不能用作異常。有兩種可以獲得Throwable對象的方法:在catch子句中使用參數(shù)或者用new操作符創(chuàng)建。
程序執(zhí)行在throw語句之后立即停止;后面的任何語句不被執(zhí)行。最緊緊包圍的try塊用來檢查它是否含有一個與異常類型匹配的catch語句。如果發(fā)現(xiàn)了匹配的塊,控制轉(zhuǎn)向該語句;如果沒有發(fā)現(xiàn),次包圍的try塊來檢查,以此類推。如果沒有發(fā)現(xiàn)匹配的catch塊,默認異常處理程序中斷程序的執(zhí)行并且打印堆棧軌跡。
下面是一個創(chuàng)建并拋出異常的例子程序,與異常匹配的處理程序再把它拋出給外層的處理程序。
// Demonstrate throw.
class ThrowDemo {
static void demoproc() {
try {
throw new NullPointerException(“demo”);
} catch(NullPointerException e) {
System.out.println(“Caught inside demoproc.”);
throw e; // rethrow the exception
}
}
public static void main(String args[]) {
try {
demoproc();
} catch(NullPointerException e) {
System.out.println(“Recaught: ” + e);
}
}
}
該程序有兩個機會處理相同的錯誤。首先,main()設(shè)立了一個異常關(guān)系然后調(diào)用demoproc( )。 demoproc( )方法然后設(shè)立了另一個異常處理關(guān)系并且立即拋出一個新的NullPointerException實例,NullPointerException在下一行被捕獲。異常于是被再次拋出。下面是輸出結(jié)果:
Caught inside demoproc.
Recaught: java.lang.NullPointerException: demo
該程序還闡述了怎樣創(chuàng)建Java的標準異常對象,特別注意下面這一行:
throw new NullPointerException(“demo”);
這里,new用來構(gòu)造一個NullPointerException實例。所有的Java內(nèi)置的運行時異常有兩個構(gòu)造函數(shù):一個沒有參數(shù),一個帶有一個字符串參數(shù)。當用到第二種形式時,參數(shù)指定描述異常的字符串。如果對象用作 print( )或println( )的參數(shù)時,該字符串被顯示。這同樣可以通過調(diào)用getMessage( )來實現(xiàn),getMessage( )是由Throwable定義的。
七. 多線程編程
1.線程的概念
2.Java線程模型
3.主線程
4.創(chuàng)建線程
5.創(chuàng)建多線程
6.isAlive()和join()的使用
7.線程優(yōu)先級
8.線程同步
9.線程間通信
10.線程死鎖
11.線程的掛起、恢復(fù)和終止
總結(jié)
以上是生活随笔為你收集整理的Java throw:异常的抛出的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 自动化运维之–Cobbler
- 下一篇: Java throws子句