java在己有的类创子类怎么创_使用Java创建自己的异常子类
盡管Java的內(nèi)置異常處理大多數(shù)常見錯(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 定義的方法
方法
描述
Throwable fillInStackTrace( )
返回一個(gè)包含完整堆棧軌跡的Throwable對(duì)象,該對(duì)象可能被再次引發(fā)。
String getLocalizedMessage( )
返回一個(gè)異常的局部描述
String getMessage( )
返回一個(gè)異常的描述
void printStackTrace( )
顯示堆棧軌跡
void printStackTrace(PrintStreamstream)
把堆棧軌跡送到指定的流
void printStackTrace(PrintWriterstream)
把堆棧軌跡送到指定的流
String toString( )
返回一個(gè)包含異常描述的String對(duì)象。當(dāng)輸出一個(gè)Throwable對(duì)象時(shí),該方法被println( )調(diào)用
下面的例子聲明了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);
}
該例題定義了Exception的一個(gè)子類MyException。該子類非常簡(jiǎn)單:它只含有一個(gè)構(gòu)造函數(shù)和一個(gè)重載的顯示異常值的toString( )方法。ExceptionDemo類定義了一個(gè)compute( )方法。該方法拋出一個(gè)MyException對(duì)象。當(dāng)compute( )的整型
main( )方法為MyException設(shè)立了一個(gè)異常處理程序,然后用一個(gè)合法的值和不合法的值調(diào)用compute( )來(lái)顯示執(zhí)行經(jīng)過(guò)
本站部分文章源于互聯(lián)網(wǎng),本著傳播知識(shí)、有益學(xué)習(xí)和研究的目的進(jìn)行的轉(zhuǎn)載,為網(wǎng)友免費(fèi)提供。如有著作權(quán)人或出版方提出異議,本站將立即刪除。如果您對(duì)文章轉(zhuǎn)載有任何疑問(wèn)請(qǐng)告之我們,以便我們及時(shí)糾正。
PS:推薦一個(gè)微信公眾號(hào): askHarries 或者qq群:474807195,里面會(huì)分享一些資深架構(gòu)師錄制的視頻錄像:有Spring,MyBatis,Netty源碼分析,高并發(fā)、高性能、分布式、微服務(wù)架構(gòu)的原理,JVM性能優(yōu)化這些成為架構(gòu)師必備的知識(shí)體系。還能領(lǐng)取免費(fèi)的學(xué)習(xí)資源,目前受益良多
總結(jié)
以上是生活随笔為你收集整理的java在己有的类创子类怎么创_使用Java创建自己的异常子类的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 豆皮的家常做法大全?
- 下一篇: 为什么不要空腹喝牛奶?