第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何在java中的自定義異常類中添加條件

如何在java中的自定義異常類中添加條件

動(dòng)漫人物 2022-06-15 15:57:42
我有一個(gè)類,我在幾個(gè)地方調(diào)用一個(gè)自定義類來處理異常。public class PackageFailedException extends Exception {    public PackageFailedException(String msg) {        super(msg)    }}如果變量為真,我需要添加一個(gè)條件,然后忽略異常。有沒有辦法在一個(gè)地方做到這一點(diǎn)?例如在我的自定義類中?提前致謝!
查看完整描述

3 回答

?
慕田峪9158850

TA貢獻(xiàn)1794條經(jīng)驗(yàn) 獲得超8個(gè)贊

您可以簡單地將標(biāo)志添加到您的異常中。


public class PackageFailedException extends Exception {


    private final boolean minorProblem;


    public PackageFailedException(String msg, boolean minorProblem) {

        super(msg);

        this.minorProblem = minorProblem;

    }


    public boolean isFlag() {

       return this.flag;

    }

}

然后您可以簡單地調(diào)用isMinorProblem()并決定是否忽略它。這里的假設(shè)是你可以在它被拋出時(shí)傳遞它。


但是,如果該標(biāo)志指示了一個(gè)完全不同的錯(cuò)誤情況,您可能希望完全考慮一個(gè)不同的Exception類,如果它是一個(gè)更特殊的情況,可能會(huì)擴(kuò)展它。PackageFailedException


 public class MinorPackageFailedException extends PackageFailedException {


     public MinorPackageFailedException(String msg) {

       super(msg);

     }

 }

然后在您的代碼中:


try {

  try {

    doThePackageThing();

  } catch (MinorPackageFailedException ex) {

    //todo: you might want to log it somewhere, but we can continue 

  }


  continueWithTheRestOfTheStuff();


} catch (PackageFailedException ex) {

  //todo: this is more serious, we skip the continueWithTheRestOfTheStuff();

}


查看完整回答
反對(duì) 回復(fù) 2022-06-15
?
慕田峪4524236

TA貢獻(xiàn)1875條經(jīng)驗(yàn) 獲得超5個(gè)贊

您有條件地創(chuàng)建異常,因此只有在適當(dāng)?shù)臅r(shí)候才會(huì)拋出它。

要么和/或您根據(jù)捕獲時(shí)的條件以不同的方式處理異常。

你不做的是讓異常決定它是否應(yīng)該存在,那就是瘋狂。


查看完整回答
反對(duì) 回復(fù) 2022-06-15
?
ABOUTYOU

TA貢獻(xiàn)1812條經(jīng)驗(yàn) 獲得超5個(gè)贊

您可以繼承您的 PackageFailedException,以創(chuàng)建如下邏輯:


public class IgnorablePackageFailedException extends PackageFailedException {


    public IgnorablePackageFailedException(final String msg) {

        super(msg);

    }

}

然后,在您的代碼中,您可以拋出 PackageFailedException 或 IgnorablePackageFailedException。例如:


public static void method1() throws PackageFailedException {

    throw new PackageFailedException("This exception must be handled");

}


public static void method2() throws PackageFailedException {

    throw new IgnorablePackageFailedException("This exception can be ignored");

}

因此,您可以像這樣處理異常:


public static void main(final String[] args) {

    try {

        method1();

    } catch (final PackageFailedException exception) {

        System.err.println(exception.getMessage());

    }


    try {

        method2();

    } catch (final IgnorablePackageFailedException exception) {

        System.out.println(exception.getMessage()); // Ignorable

    } catch (final PackageFailedException exception) {

        System.err.println(exception.getMessage());

    }

}


查看完整回答
反對(duì) 回復(fù) 2022-06-15
  • 3 回答
  • 0 關(guān)注
  • 199 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)