日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > java >内容正文

java

java自定义异常返回_Java自定义异常

發(fā)布時(shí)間:2025/3/13 java 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java自定义异常返回_Java自定义异常 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

我們可以創(chuàng)建自己(自定義)的異常類(lèi)。它們必須擴(kuò)展現(xiàn)有的異常類(lèi)。

class extends {

}

是異常類(lèi)名。在接下來(lái)的示例中,將創(chuàng)建一個(gè)MyException類(lèi),它擴(kuò)展了java.lang.Exception類(lèi)。

語(yǔ)法

自定義一個(gè)異常類(lèi)的語(yǔ)法如下:

public class MyException extends Exception {

}

異常類(lèi)與Java中的任何其他類(lèi)一樣。 通常不向異常類(lèi)中添加任何方法。許多可用于查詢(xún)異常對(duì)象狀態(tài)的有用方法已經(jīng)在Throwable類(lèi)中聲明了。

自定義異常類(lèi)構(gòu)造函數(shù)

通常,異常類(lèi)包括四個(gè)構(gòu)造函數(shù)。所有構(gòu)造函數(shù)將使用super關(guān)鍵字調(diào)用其超類(lèi)的相應(yīng)構(gòu)造函數(shù)。

class MyException extends Exception {

public MyException() {

super();

}

public MyException(String message) {

super(message);

}

public MyException(String message, Throwable cause) {

super(message, cause);

}

public MyException(Throwable cause) {

super(cause);

}

}

第一個(gè)構(gòu)造函數(shù)創(chuàng)建一個(gè)具有null的異常作為其詳細(xì)消息。

第二個(gè)構(gòu)造函數(shù)創(chuàng)建一個(gè)具有詳細(xì)消息的異常。

第三和第四個(gè)構(gòu)造函數(shù)允許通過(guò)包裝/不包含詳細(xì)消息的另一個(gè)異常來(lái)創(chuàng)建異常。

自定義異常類(lèi)之后,就可以拋出MyException類(lèi)型的異常。

throw new MyException("Your message goes here");

可以在方法/構(gòu)造函數(shù)聲明中的throws子句中使用MyException類(lèi),或者在catch塊中使用參數(shù)類(lèi)型。

public void m1() throws MyException {

}

或捕獲異常類(lèi)

try {

}catch(MyException e) {

}

Throwable類(lèi)

下面的列表顯示了Throwable類(lèi)的一些常用方法。

Throwable類(lèi)是Java中所有異常類(lèi)的超類(lèi)。此表中顯示的所有方法在所有異常類(lèi)中都可用。

方法

方法描述

Throwable getCause()

返回異常的原因。如果未設(shè)置異常的原因,則返回null。

String getMessage()

返回異常的詳細(xì)消息。

StackTraceElement[] getStackTrace()

返回堆棧跟蹤元素的數(shù)組。

Throwable initCause(Throwable cause)

設(shè)置異常的原因。有兩種方法可以將異常設(shè)置為異常的原因。 其他方法是使用構(gòu)造函數(shù),它接受原因作為參數(shù)。

void printStackTrace()

在標(biāo)準(zhǔn)錯(cuò)誤流上打印堆棧跟蹤。

void printStackTrace(PrintStream s)

將堆棧跟蹤打印到指定的PrintStream對(duì)象。

void printStackTrace(PrintWriter s)

將堆棧跟蹤打印到指定的PrintWriter對(duì)象。

String toString()

返回異常對(duì)象的簡(jiǎn)短描述。

實(shí)例-1

以下代碼演示了使用異常類(lèi)的printStackTrace()方法。

public class Main {

public static void main(String[] args) {

try {

m1();

} catch (MyException e) {

e.printStackTrace(); // Print the stack trace

}

}

public static void m1() throws MyException {

m2();

}

public static void m2() throws MyException {

throw new MyException("有異常或錯(cuò)誤發(fā)生,鬼知道發(fā)生了什么,先拋出來(lái)再說(shuō)!");

}

}

class MyException extends Exception {

public MyException() {

super();

}

public MyException(String message) {

super(message);

}

public MyException(String message, Throwable cause) {

super(message, cause);

}

public MyException(Throwable cause) {

super(cause);

}

}

上面的代碼生成以下結(jié)果。

實(shí)例-2

以下代碼顯示了如何將異常的堆棧跟蹤寫(xiě)入字符串中。

import java.io.PrintWriter;

import java.io.StringWriter;

public class Main {

public static void main(String[] args) {

try {

m1();

} catch (MyException e) {

String str = getStackTrace(e);

System.out.println(str);

}

}

public static void m1() throws MyException {

m2();

}

public static void m2() throws MyException {

throw new MyException("有異常或錯(cuò)誤發(fā)生,鬼知道發(fā)生了什么,先拋出來(lái)再說(shuō)!");

}

public static String getStackTrace(Throwable e) {

StringWriter strWriter = new StringWriter();

PrintWriter printWriter = new PrintWriter(strWriter);

e.printStackTrace(printWriter);

// Get the stack trace as a string

String str = strWriter.toString();

return str;

}

}

class MyException extends Exception {

public MyException() {

super();

}

public MyException(String message) {

super(message);

}

public MyException(String message, Throwable cause) {

super(message, cause);

}

public MyException(Throwable cause) {

super(cause);

}

}

上面的代碼生成以下結(jié)果。

¥ 我要打賞

糾錯(cuò)/補(bǔ)充

收藏

加QQ群啦,易百教程官方技術(shù)學(xué)習(xí)群

注意:建議每個(gè)人選自己的技術(shù)方向加群,同一個(gè)QQ最多限加 3 個(gè)群。

與50位技術(shù)專(zhuān)家面對(duì)面20年技術(shù)見(jiàn)證,附贈(zèng)技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的java自定义异常返回_Java自定义异常的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。