在我创建的一个使用 AWT 标准类的应用程序中,对 Color 构造函数的调用抛出以下异常消息:
运行:
Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: Color parameter outside of expected range: Red
at java.awt.Color.testColorValueRange(Color.java:310)
at java.awt.Color.<init>(Color.java:395)
at java.awt.Color.<init>(Color.java:369)
at mandelbrotset.DrawingArea.translateColor(DrawingArea.java:106)
at mandelbrotset.DrawingArea.drawMandelbrotSet(DrawingArea.java:75)
at mandelbrotset.DrawingArea.paintComponent(DrawingArea.java:45)
at javax.swing.JComponent.paint(JComponent.java:1054)
有什么办法可以改变这个消息(包括在这种情况下红色组件的值)?
我想定义一个新类 NewColor
扩展 Color
并在构造函数中抛出修改后的异常,但新类构造函数必须从调用 开始>super(red, green, blu)
等标准 testColorValueRange(int r, int g, int b, int a)
被调用并抛出标准异常。
感谢您的帮助。
最佳答案
捕获不需要的异常并抛出所需的异常。 像这样:
try
{
blah; // throws the unwanted exception.
}
catch (UnwantedExceptionType exception)
{
throw new DesiredException(exception); // option 1.
// or
throw new DesiredException(new info, exception) // option 2.
}
您可以创建一个新的异常类(上例中的 DesiredException),它接受现有的异常并将值“更改”为您想要的值。
也有可能(在上面的代码中)UnwantedExceptionType 和 DesiredException 是同一类型,您只需在 DesiredException 中设置所需的值即可。
关于java - 如何更改java标准类抛出的异常消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8881821/