java - 如何更改java标准类抛出的异常消息?

标签 java exception

在我创建的一个使用 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/

相关文章:

java - while(true) 循环不间断

python - 异步: terminating all tasks when one of them throws exception

java - 如何将异常类中的方法传递给异常构造函数?

c# - 递归检查数组中是否有重复元素

java - 匹配包含子域的 URL

java - 在多个 ESB 应用程序中使用相同的 JBoss Action,无需重复代码

java - 将 2 组/项目在中心两侧对齐

java - 如何获取外部包中的异常原因/原因

python - 是否可以异常返回?

java - 如何管理 API 中的异常?