gpt4 book ai didi

java - 如何更改Exception.getMessage()的返回消息?

转载 作者:行者123 更新时间:2023-12-01 12:19:16 43 4
gpt4 key购买 nike

我需要更改方法 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/

43 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com