java应该覆盖哪个异常方法?
我有一个自己的异常,即InputException
当它没有被捕获时,JVM会写入控制台堆栈跟踪
public static void main(String[] args) throws InputException{
throw new InputException();
}
JVM写入控制台
线程“main”InputException中的异常 在测试中。主要的main(main.java:8)
如何更改此消息,InputException的哪个方法生成此stackTrace
# 1 楼答案
重载
InputException
的构造函数然后使用它
# 2 楼答案
因此,您必须在exception类中创建一个使用字符串参数调用super的构造函数:
控制台上打印的消息是
getMessage()
方法返回的消息,默认情况下返回传递给Throwable
构造函数的消息# 3 楼答案
可以用应该打印的消息重载
Exception
构造函数,例如然后抛出异常,如下所示:
请看一看Java documentation关于我们为什么可以这样做
# 4 楼答案
JVM在内部调用
printStackTrace()
方法(因为您没有重写它,所以将调用Throwable
类实现)根据Throwable#printStackTrace
如果不需要这种表示,那么可以在自定义异常类中重写
printStackTrace()
方法,或者在创建其对象时将字符串消息作为构造函数参数传递# 5 楼答案
恐怕没有办法改变
相反,您可能希望捕获异常,处理它,并将一些整洁的消息输出到控制台(或记录器)