如果“messageString”不为空,我将调用异常,将“messageString”作为参数传递,如下所示
if (messageString !=null) {
throw new org.jaffa.exceptions.ApplicationExceptions(
new com.mirotechnologies.task.core.domain.exceptions.TaskException(
com.mirotechnologies.task.core.domain.exceptions.TaskException.MANDATORY_FIELD,
messageString
)
);
}
(我必须编写类的完整路径,因为它在 AOP 片段中)
如果messageString
不是,它可以正常工作null
并适当地显示消息。
但是当它是时null
,它实际上是在异常中抛出一个运行时错误,说
undefined argument 'messageString' at : throw new org.jaffa.exceptions.ApplicationExceptions(new com.mirotechnologies.task.core.domain.exceptions.TaskException(com.mirotechnologies.task.core.domain.exceptions.TaskException.MANDATORY_FIELD, messageString));
无法调试它,因为它在 AOP 内部,也不确定为什么它会进入循环,如果它为 null - 可能是它的编译器问题,即 TaskException 构造函数的模糊 null 参数?
这是TaskException中的构造函数声明
public TaskException(String propertyName, Object parameter0) {
this(propertyName, new Object[] {parameter0});
}
public TaskException(String propertyName, Object[] parameters) {
super(propertyName, parameters);
}
messageString
传递java 代码片段时是否需要添加演员表
更新:我在抛出异常时添加了一个强制转换(对象)messageString,现在它抛出了无法将“void”值转换为 java.lang.Object的错误- 再次为什么它是“void”,它不应该没有进入循环,因为messageString 为空?
最初第一行被声明为 java.lang.String messageString = null;