如何在自定义异常中打印邮件?

时间:2015-10-07 18:56:00

标签: java

我是异常的新手,在getMessage()和super(customMessage)上有点困惑。如果听起来很荒谬,请原谅我......

我的try catch代码的一部分在这里:

try{
        sc.buyASong();
    } catch (CardEmptyException e){
        System.out.println("Caught error: " +e.getMessage() );
    } catch (CardNotActivatedException e){
        System.out.println("Caught error: " +e.getMessage() );
    }

我想打印“抓错误:卡未激活” 或“抓到错误:卡上没有更多歌曲”。我的自定义异常就像这样

class CardNotActivatedException extends Exception{
public CardNotActivatedException(){
    super("Card not activated");
    }
}
class CardEmptyException extends Exception{
    public CardEmptyException(){
        super("No more songs on the card");
    }
}

但是当我运行它时,会打印

com.example.CardNotActivatedException: Card not activated

和“抓错误:----”也没有打印出来。有没有我错误理解的东西?因为看起来我根本就错了,我不太确定我的误解在哪里......?

1 个答案:

答案 0 :(得分:1)

您确定要捕获CardEmptyException吗? 你忘了保存代码吗?

无论如何,我建议你改变你的方法,并使用接收String对象的构造函数方法。您可以使用默认消息保留默认的costructor,但也可以使用类似这样的内容:

public MyCustomException(String arg0) {
    super(arg0);
}

然后,每当你调用此异常时,你可以调用passa你想要的消息。