我是异常的新手,在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
和“抓错误:----”也没有打印出来。有没有我错误理解的东西?因为看起来我根本就错了,我不太确定我的误解在哪里......?
答案 0 :(得分:1)
您确定要捕获CardEmptyException吗? 你忘了保存代码吗?
无论如何,我建议你改变你的方法,并使用接收String对象的构造函数方法。您可以使用默认消息保留默认的costructor,但也可以使用类似这样的内容:
public MyCustomException(String arg0) {
super(arg0);
}
然后,每当你调用此异常时,你可以调用passa你想要的消息。