我需要更改方法 getMessage() 的返回消息,
例如,我有一个 ArithmeticException,当我写时:
try{c=a/0;}
catch(ArithmeticException excep){System.out.println( excep.getMessage() );}
然后我执行以下代码:/by zero。
因此,我想通过覆盖 getMesage 方法来更改此结果。
我创建了一个名为 MyException 的新类,它继承自 ArithmeticExceprtion 并重写了方法 getMessage,然后我已将上一个代码中的异常类型从 ArithmeticException 更改为新名称类 MyException:
public class MyException extends ArithmeticException{
@override
public String getMessage(){
retun "new code message";}
}
我已经更改了第一个代码,我写了:
try{c=a/0;}
catch(MyException excep){System.out.println( excep.getMessage() );}
当我执行此代码时,我收到了相同的错误消息,就好像我没有捕获异常一样:
Exception in thread "main" java.lang.ArithmeticException: / by zero
at main.test.main(Test.java:33)
所以,我的问题是:如何更改方法 getMessage() 的消息?
最佳答案
c=a/0
总是抛出 ArithmeticException
因为它是这样实现的。
如果您编写自己的除法函数,该函数在除以 0 时抛出 MyException
那么您实际上可以捕获它:
float division(float a, float b) {
if(b == 0)
throw new MyException();
return a/b;
}
...
try {
c = division(a, b);
} catch(MyException e) {
System.out.println(e.getMessage());
}
关于java - 如何更改Exception.getMessage()的返回消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26807684/