Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java parseInt和parseLong引发不支持的操作异常_Java_Eclipse - Fatal编程技术网

Java parseInt和parseLong引发不支持的操作异常

Java parseInt和parseLong引发不支持的操作异常,java,eclipse,Java,Eclipse,Integer.parseInt(“5”)和Long.parseLong(“5”)正在Eclipse表达式窗口中抛出一个不支持操作异常 我认为这也是我在运行时遇到的一个例外,但由于对Eclipse不熟悉,我不确定如何在调试会话中找到e的类型: public static long longTryParse(String text, long fallbackValue) { try { return Long.parseLong(text); } catch (Exceptio

Integer.parseInt(“5”)
Long.parseLong(“5”)
正在Eclipse表达式窗口中抛出一个
不支持操作异常

我认为这也是我在运行时遇到的一个例外,但由于对Eclipse不熟悉,我不确定如何在调试会话中找到
e
的类型:

public static long longTryParse(String text, long fallbackValue) {
  try {
    return Long.parseLong(text);
  } catch (Exception e) {
    return fallbackValue; // When stopping at a breakpoint here, Eclipse says that e is of type 'Exception'.  Well, that's informative.
  }
}
所以

  • 这些陈述有效吗
  • 如果是,为什么我会得到一个例外
  • (不太重要)为什么Eclipse在调试会话期间不说e是类型UnsupportedOperationException而不是Exception
  • 谢谢

    根据parseInt只能抛出NumberFormatException,这意味着UnsupportedException来自代码中的不同位置

    parseInt

    public static int parseInt(String s)
                        throws NumberFormatException
    
    将字符串参数解析为有符号十进制整数。人物 字符串中的所有字符都必须为十进制 数字,除了第一个 字符可以是ASCII减号 “-”(“\u002D”)表示负数 价值生成的整数值为 返回,就像参数 基数为10,如下所示: 对 parseInt(java.lang.String,int) 方法

    根据parseInt只能抛出NumberFormatException,这意味着UnsupportedException来自代码中的不同位置

    parseInt

    public static int parseInt(String s)
                        throws NumberFormatException
    
    将字符串参数解析为有符号十进制整数。人物 字符串中的所有字符都必须为十进制 数字,除了第一个 字符可以是ASCII减号 “-”(“\u002D”)表示负数 价值生成的整数值为 返回,就像参数 基数为10,如下所示: 对 parseInt(java.lang.String,int) 方法


    尝试在显示异常类型的catch块中放入sysout

    System.out.println(e);
    

    而且,正如suresh所提到的,它只能抛出NumberFormatException,尝试将sysout放入显示异常类型的catch块中

    System.out.println(e);
    

    而且,正如suresh提到的,它只能抛出NumberFormatException,我认为您应该首先尝试解析文本变量,并将其放入另一个长变量中并打印。这样您就可以知道是否完成了解析。这样您就可以知道问题出在哪里。

    我认为您应该首先尝试解析文本变量,然后将其放入另一个长变量中并打印出来。这样您就可以知道是否完成了解析。这样你就能知道问题出在哪里了

    这些陈述有效吗

    是的。。。作为普通Java程序上下文中的Java表达式

    在Eclipse调试器的表达式计算器的上下文中,我不确定

    如果是,为什么我会得到一个例外

    我不确定,但我怀疑这与调试器本身有关

    • 一种可能是您错误地使用了表达式求值功能

    • 另一种可能性是,这是Eclipse调试器中的错误,或者是Eclipse调试器和JVM中的调试代理之间的不匹配

    我知道的一件事是
    parseInt
    parseLong
    方法本身不会抛出
    UnsupportedOperationException
    。(理论上,他们可以这样做,因为这是一个未经检查的异常。但我检查了这两个方法的源代码,如果以正常方式执行,代码是无法做到这一点的。)


    Google查询——“site:eclipse.org+unsupportdoperationexception JDI”——显示了eclipse问题数据库和新闻组/邮件列表中的大量点击

    在某些情况下,问题似乎在于目标平台的JDI/JNDI实现不完整。这可能是你的问题吗?你提到你正在做Android开发

    这些陈述有效吗

    是的。。。作为普通Java程序上下文中的Java表达式

    在Eclipse调试器的表达式计算器的上下文中,我不确定

    如果是,为什么我会得到一个例外

    我不确定,但我怀疑这与调试器本身有关

    • 一种可能是您错误地使用了表达式求值功能

    • 另一种可能性是,这是Eclipse调试器中的错误,或者是Eclipse调试器和JVM中的调试代理之间的不匹配

    我知道的一件事是
    parseInt
    parseLong
    方法本身不会抛出
    UnsupportedOperationException
    。(理论上,他们可以这样做,因为这是一个未经检查的异常。但我检查了这两个方法的源代码,如果以正常方式执行,代码是无法做到这一点的。)


    Google查询——“site:eclipse.org+unsupportdoperationexception JDI”——显示了eclipse问题数据库和新闻组/邮件列表中的大量点击


    在某些情况下,问题似乎在于目标平台的JDI/JNDI实现不完整。这可能是你的问题吗?您提到您正在进行Android开发…

    异常是声明的
    e
    类型,这通常显示在Java透视图的工具提示中。如果eclipse没有告诉您更多,首先确保您处于调试透视图(而不是Java透视图)中

    我猜您对eclipse工具提示的配置有问题。您应该在变量视图中看到有关异常的更多信息(如果未打开,请尝试Window/Show view/Variables)

    此外,当调试在断点处停止时,您可以在源代码中标记
    e
    ,然后按CTRL+I(检查)。你应该得到一个弹出窗口,告诉你更多关于e

    编辑:这是关于了解更多关于e。我同意早期的海报,你不能也不能