【发布时间】:2016-12-19 21:19:53
【问题描述】:
我想通过向它们添加属性来自定义 java 异常类。它可以像以下属性一样简单:
boolean isThisStupid;
void setIsThisStupid(boolean iValue);
boolean getIsThisStupid();
每次我实例化一个异常时,比如 NullPointerException 或 IllegalArgumentException,它都会包含这个属性。
由于我没有Java的源代码,当然不能编辑Exception基类。
我考虑过使用装饰器模式,使用实现 IException 接口的“ExceptionDecorator”类,但是,这样做会丢失初始异常类型,这是我不想要的。例如:
IException mException = new ExceptionDecorator( new NullPointerException() );
我会得到:
mException instanceof ExceptionDecorator; //true
mException instanceof NullPointerException; //false
我希望我的自定义异常是 NullPointerException 的一个实例。
这是完全通用的,我希望它适用于任何异常的子类。
这甚至可能吗?如果是,也许有一种模式可以帮助我,但我不知道?
我已经尽力说清楚了,如果我不清楚,请询问更多详细信息,我将重新表述最初的主题。
谢谢
【问题讨论】: