java在己有的类创子类怎么创_使用Java创建自己的异常子类...
盡管java的內(nèi)置異常處理大多數(shù)常見(jiàn)錯(cuò)誤,你也許希望建立你自己的異常類型來(lái)處理你所應(yīng)用的特殊情況。這是非常簡(jiǎn)單的:只要定義Exception的一個(gè)子類就可以了(Exception當(dāng)然是Throwable的一個(gè)子類)。你的子類不需要實(shí)際執(zhí)行什么——它們?cè)陬愋拖到y(tǒng)中的存在允許你把它們當(dāng)成異常使用。
Exception類自己沒(méi)有定義任何方法。當(dāng)然,它繼承了Throwable提供的一些方法。因此,所有異常,包括你創(chuàng)建的,都可以獲得Throwable定義的方法。這些方法顯示在表10-3中。你還可以在你創(chuàng)建的異常類中覆蓋一個(gè)或多個(gè)這樣的方法。
表 10-3 Throwable 定義的方法
下面的例子聲明了Exception的一個(gè)新子類,然后該子類當(dāng)作方法中出錯(cuò)情形的信號(hào)。它重載了toString( )方法,這樣可以用println( )顯示異常的描述。
// This program creates a custom exception type.
class MyException extends Exception {
private int detail;
MyException(int a) {
detail = a;
}
public String toString() {
return "MyException[" + detail + "]";
}
}
class ExceptionDemo {
static void compute(int a) throws MyException {
System.out.println("Called compute(" + a + ")");
if(a > 10)
throw new MyException(a);
System.out.println("Normal exit");
}
public static void main(String args[]) {
try {
compute(1);
compute(20);
} catch (MyException e) {
System.out.println("Caught " + e);
}
}
}
該例題定義了Exception的一個(gè)子類MyException。該子類非常簡(jiǎn)單:它只含有一個(gè)構(gòu)造函數(shù)和一個(gè)重載的顯示異常值的toString( )方法。ExceptionDemo類定義了一個(gè)compute( )方法。該方法拋出一個(gè)MyException對(duì)象。當(dāng)compute( )的整型參數(shù)比10大時(shí)該異常被引發(fā)。
main( )方法為MyException設(shè)立了一個(gè)異常處理程序,然后用一個(gè)合法的值和不合法的值調(diào)用compute( )來(lái)顯示執(zhí)行經(jīng)過(guò)代碼的不同路徑。下面是結(jié)果:
Called compute(1)
Normal exit
Called compute(20)
Caught MyException[20]
總結(jié)
以上是生活随笔為你收集整理的java在己有的类创子类怎么创_使用Java创建自己的异常子类...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: python中如何安装django库_p
- 下一篇: 零跑创始人:增程式结构简单成本低 就是为