任何想法如何处理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