任何想法如何處理java.lang.IllegalArgumentException?這個異常將如何顯示?那是因爲回報是空的嗎?Java返回Double異常(java.lang.IllegalArgumentException)
下面是一張屏幕截圖,顯示了我從代碼中得到的錯誤。
任何想法如何處理java.lang.IllegalArgumentException?這個異常將如何顯示?那是因爲回報是空的嗎?Java返回Double異常(java.lang.IllegalArgumentException)
下面是一張屏幕截圖,顯示了我從代碼中得到的錯誤。
你確定你的列名是double類型?如果你確認。我認爲你可以重新啓動eclipse.may,你可以解決這個問題。
他有一個檢查右上方,以確保'col'是一個雙重類型。另外,他的IDE很可能會導致運行時錯誤。 – Eric
嗨先生,我認爲不應該因爲重啓eclipse纔會解決,反正我也試過。我的問題是,當檢索double作爲空值,我聲明它爲空,然後異常將拋出..但如果它不是空值,那就沒事了。當我將數據類型聲明爲double並且該值爲null時,您是否有任何想法處理我的情況,然後可以通過另一種方式處理,而不是由異常命中?謝謝 – Chang
我know.i也try.it工作時,我們寫這樣的代碼︰Double d = null; String.valueOf(d);所以,我認爲問題是「col.getColumnName()」,你可以顯示值?調試這個code.output這個值,我想你可以得到答案。首先,當param爲null時,可以運行String.valueOf()方法。可能是你必須改變你的方法,因爲這個參數是無效的。如果你嘗試失敗了。告訴我,我會想。 – PoWen
嘗試打破語句,它會更容易追查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
}
}
我所知道的處理這種情況(使用原始列類型和JDBC結果),最好的辦法是與ResultSet
的wasNull方法。
public static Double readDoubleValue(ResultSet rs, String columnName) {
try {
Double val = rs.getDouble(columnName);
if (! rs.wasNull()) {
return val;
}
} catch (SQLException e) {
}
return null;
}
雅,在最後我使用catch異常來解決我的問題..不知道這是一個正確的做法與否。無論如何,感謝您的建議。 – Chang
你得到一個'null'嗎? –
hmm,String.valueOf()返回一個字符串。即使String.valueOf((Object)null)也返回「null」不爲null。除非對象重寫toString做一些有趣的事情,否則我不確定比較null是你想要的。 – bcorso
@ElliottFrisch,是的,我的價值爲零。如果值不爲null,則異常不會拋出。你有什麼想法嗎?謝謝。 – Chang