2013-11-21 79 views
1

任何想法如何處理java.lang.IllegalArgumentException?這個異常將如何顯示?那是因爲回報是空的嗎?Java返回Double異常(java.lang.IllegalArgumentException)

下面是一張屏幕截圖,顯示了我從代碼中得到的錯誤。

enter image description here

+1

你得到一個'null'嗎? –

+0

hmm,String.valueOf()返回一個字符串。即使String.valueOf((Object)null)也返回「null」不爲null。除非對象重寫toString做一些有趣的事情,否則我不確定比較null是你想要的。 – bcorso

+0

@ElliottFrisch,是的,我的價值爲零。如果值不爲null,則異常不會拋出。你有什麼想法嗎?謝謝。 – Chang

回答

0

你確定你的列名是double類型?如果你確認。我認爲你可以重新啓動eclipse.may,你可以解決這個問題。

+0

他有一個檢查右上方,以確保'col'是一個雙重類型。另外,他的IDE很可能會導致運行時錯誤。 – Eric

+0

嗨先生,我認爲不應該因爲重啓eclipse纔會解決,反正我也試過。我的問題是,當檢索double作爲空值,我聲明它爲空,然後異常將拋出..但如果它不是空值,那就沒事了。當我將數據類型聲明爲double並且該值爲null時,您是否有任何想法處理我的情況,然後可以通過另一種方式處理,而不是由異常命中?謝謝 – Chang

+0

我know.i也try.it工作時,我們寫這樣的代碼︰Double d = null; String.valueOf(d);所以,我認爲問題是「col.getColumnName()」,你可以顯示值?調試這個code.output這個值,我想你可以得到答案。首先,當param爲null時,可以運行String.valueOf()方法。可能是你必須改變你的方法,因爲這個參數是無效的。如果你嘗試失敗了。告訴我,我會想。 – PoWen

1

嘗試打破語句,它會更容易追查null,也可能要檢查Double爲null而不是Double的String。

String colName=col.getColnmnname(); 
Double dv = sqlRow.getDoubleValue(colName); 

if(dv!=null) 
{ 
    ... 

編輯,也許是這樣的:

if(sqlRow!=null) 
{ 
    try 
    { 
     String colName=col.getColumnname(); 
     Double dv = sqlRow.getDoubleValue(colName); 
     if(dv!=null) 
     { 
      ... 
     } 
    } 
    catch (SQLException e) 
    { 
     //handle the error 
    } 
} 
+0

嗨Greg先生,我試過了你的解決方案,當colValue不爲null時工作,但當colValue爲null時不工作。任何建議可以給我如何處理這2種不同的情況? – Chang

+0

雅,最後我使用catch異常來解決我的問題..不知道這是否是一個正確的做法。無論如何,感謝您的建議。 – Chang

1

我所知道的處理這種情況(使用原始列類型和JDBC結果),最好的辦法是與ResultSetwasNull方法。

public static Double readDoubleValue(ResultSet rs, String columnName) { 
    try { 
    Double val = rs.getDouble(columnName); 
    if (! rs.wasNull()) { 
     return val; 
    } 
    } catch (SQLException e) { 
    } 
    return null; 
} 
+0

雅,在最後我使用catch異常來解決我的問題..不知道這是一個正確的做法與否。無論如何,感謝您的建議。 – Chang

相關問題