2012-10-03 72 views
0

我打電話異常,如果如下所示運行時異常空作爲參數傳遞給函數

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 
    ) 
);  
} 

的「messageString」不爲空傳遞「messageString」作爲參數時(I必須寫自從其內部的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,也不能肯定它爲什麼走循環,如果內它的空 - 可能是其對TaskException構造函數的模糊null參數的編譯器問題?

這裏是內部TaskException的構造函數聲明

public TaskException(String propertyName, Object parameter0) { 
     this(propertyName, new Object[] {parameter0}); 
} 

public TaskException(String propertyName, Object[] parameters) { 
     super(propertyName, parameters); 
} 

我是否需要添加通過在java中messageString片斷

更新當鑄:我添加了一個鑄造(對象)messageString時拋出Exception並且拋出錯誤,現在不能將'void'強制轉換爲java.lang.Object - 爲什麼它是'void',它不應該進入循環,因爲messageString是null?

最初第一行被聲明爲java.lang.String messageString = null;

回答

1

您猜對於TaskException's構造函數中的null是不明確的。

你可能想嘗試調用:

new TaskException(TaskException.MANDATORY_FIELD, new Object[] {messageString}) 
+0

是和多數民衆的權利我有傳入構造消息時創建新對象。謝謝!! –

+0

嘿,它現在拋出異常「位置0的空數組初始化」,我認爲最好的出路可能是將它設置爲某個值X代表整個代碼中爲空,並且實際上不使用'null'字符串值 –

相關問題