Java从SQL异常返回双精度(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 =

知道如何处理java.lang.IllegalArgumentException吗?此异常将如何显示?这是因为返回值为空吗

下面是一个屏幕截图,显示了我是如何从代码中获得错误的


您确定得到的列名是双重类型的吗?如果你确认的话。我认为您可以重新启动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来解决我的问题。。不知道这是不是正确的做法。不管怎样,谢谢你的建议。