Java throws子句
如果一個(gè)方法可以導(dǎo)致一個(gè)異常但不處理它,它必須指定這種行為以使方法的調(diào)用者可以保護(hù)它們自己而不發(fā)生異常。做到這點(diǎn)你可以在方法聲明中包含一個(gè)throws子句。一個(gè) throws 子句列舉了一個(gè)方法可能拋出的所有異常類(lèi)型。這對(duì)于除Error或RuntimeException及它們子類(lèi)以外類(lèi)型的所有異常是必要的。一個(gè)方法可以?huà)伋龅乃衅渌?lèi)型的異常必須在throws子句中聲明。如果不這樣做,將會(huì)導(dǎo)致編譯錯(cuò)誤。
下面是包含一個(gè)throws子句的方法聲明的通用形式:
type method-name(parameter-list) throws exception-list{
// body of method
}
這里,exception-list是該方法可以?huà)伋龅囊杂卸禾?hào)分割的異常列表。
下面是一個(gè)不正確的例子。該例試圖拋出一個(gè)它不能捕獲的異常。因?yàn)槌绦驔](méi)有指定一個(gè)throws子句來(lái)聲明這一事實(shí),程序?qū)⒉粫?huì)編譯。
// This program contains an error and will not compile.
class ThrowsDemo {
static void throwOne() {
System.out.println(“Inside throwOne.”);
throw new IllegalAccessException(“demo”);
}
public static void main(String args[]) {
throwOne();
}
}
為編譯該程序,需要改變兩個(gè)地方。第一,需要聲明throwOne( )引發(fā)IllegalAccess?Exception異常。第二,main( )必須定義一個(gè)try/catch 語(yǔ)句來(lái)捕獲該異常。正確的例子如下:
// This is now correct.
class ThrowsDemo {
static void throwOne() throws IllegalAccessException {
System.out.println(“Inside throwOne.”);
throw new IllegalAccessException(“demo”);
}
public static void main(String args[]) {
try {
throwOne();
} catch (IllegalAccessException e) {
System.out.println(“Caught ” + e);
}
}
}
下面是例題的輸出結(jié)果:
inside throwOne
caught java.lang.IllegalAccessException: demo
七. 多線程編程
1.線程的概念
2.Java線程模型
3.主線程
4.創(chuàng)建線程
5.創(chuàng)建多線程
6.isAlive()和join()的使用
7.線程優(yōu)先級(jí)
8.線程同步
9.線程間通信
10.線程死鎖
11.線程的掛起、恢復(fù)和終止
總結(jié)
以上是生活随笔為你收集整理的Java throws子句的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Java throw:异常的抛出
- 下一篇: SVN登录时不断弹出用户名密码输入