Java从SQL异常返回双精度(Java.lang.IllegalArgumentException)
知道如何处理java.lang.IllegalArgumentException吗?此异常将如何显示?这是因为返回值为空吗 下面是一个屏幕截图,显示了我是如何从代码中获得错误的Java从SQL异常返回双精度(Java.lang.IllegalArgumentException),java,exception,Java,Exception,知道如何处理java.lang.IllegalArgumentException吗?此异常将如何显示?这是因为返回值为空吗 下面是一个屏幕截图,显示了我是如何从代码中获得错误的 您确定得到的列名是双重类型的吗?如果你确认的话。我认为您可以重新启动eclipse。也许您可以解决这个问题。尝试分解语句,这样可以更容易地跟踪null,而且您可能希望检查Double是否为null,而不是Double的字符串 String colName=col.getColnmnname(); Double dv =
您确定得到的列名是双重类型的吗?如果你确认的话。我认为您可以重新启动eclipse。也许您可以解决这个问题。尝试分解语句,这样可以更容易地跟踪null,而且您可能希望检查Double是否为null,而不是Double的字符串
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)是使用
ResultSet
上的方法
public static Double readDoubleValue(ResultSet rs, String columnName) {
try {
Double val = rs.getDouble(columnName);
if (! rs.wasNull()) {
return val;
}
} catch (SQLException e) {
}
return null;
}
您是否得到一个
null
?嗯,String.valueOf()返回一个字符串。偶数String.valueOf((Object)null)返回“null”而不是null。除非对象重写toString来做一些有趣的事情,否则我不确定与null进行比较是否是您想要的。@ElliottFrisch,是的,我得到的值为null。如果该值不为null,则不会引发异常。你对此有什么想法吗?谢谢。他正上方有一张支票,以确保col
是双重类型。另外,他的IDE不太可能导致运行时错误。嗨,PoWen先生,我认为这不应该,因为重启eclipse会解决问题,无论如何我也尝试过。我的问题是,当检索double作为null值并将其声明为null时,将抛出异常。。但如果它不是空值,那么就可以了。当我将数据类型声明为double且值为null时,您知道如何处理我的情况吗?然后可以通过另一种方式处理,而不是被异常击中?谢谢,我知道。我也试过了。当我们编写这样的代码时,它是有效的:Double d=null;字符串。值为(d);所以,我认为问题是“col.getColumnName()”,您能显示值吗?调试此代码。输出此值,我想您可以得到答案。首先,String.valueOf()方法可以在param为null时运行。可能您必须更改您的方法,因为参数无效。如果您尝试但失败。告诉我,我会思考。我使用catch异常来解决我的问题,因为无论我如何尝试,直到我使用catch异常,它才起作用。无论如何,谢谢你的帮助。:)你是在工作还是在学习?也许我们可以用java进行通信。当然,当我有更多的空闲时间时。嗨,格雷格先生,我试过你的解决方案,当colValue不为null时它是工作的,但是当colValue为null时它就不工作了。有什么建议可以告诉我如何处理这两种不同的情况吗?是的,最后我使用catch exception来解决我的问题。。不知道这是不是正确的做法。无论如何,谢谢你的建议。耶,最后我用catch exception来解决我的问题。。不知道这是不是正确的做法。不管怎样,谢谢你的建议。