相关疑难解决方法(0)

为什么Double.parseDouble(null)和Integer.parseInt(null)抛出不同的异常?

为什么Double.parseDouble(null)和Integer.parseInt(null)抛出不同的异常?

这是历史事故还是故意的?文档清楚地说明了两种类型的例外情况Double.parseDouble(...)和一种情况Integer.parseInt(),但似乎不一致:

Integer.parseInt(null); // throws java.lang.NumberFormatException: null
Run Code Online (Sandbox Code Playgroud)

然而

Double.parseDouble(null); // throws java.lang.NullPointerException
Run Code Online (Sandbox Code Playgroud)

java exception nullpointerexception numberformatexception

90
推荐指数
2
解决办法
4万
查看次数

解析存储为字符串的浮点数应抛出异常

我有一个存储数字的字符串.现在我想解析该字符串并获得浮点数.

import java.util.*;
import java.lang.*;
import java.io.*;

/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
    public static void main (String[] args) throws java.lang.Exception
    {
        try {
            System.out.println(Integer.parseInt("  2  "));
        } catch(NumberFormatException e) {
            System.out.println("Exception caught");
        }
        System.out.println(Float.parseFloat("  2.4  "));

    }
}
Run Code Online (Sandbox Code Playgroud)

现在在上面的代码中,如果你运行它将成功.我的问题是为什么在整数的情况下尾随空格抛出一段NumberFormatException时间解析一个浮点并不抛出一个?

PS:booolean和double解析的情况相同.

PPS:为什么java中存在不一致?我已经检查了源代码

java parsing

10
推荐指数
1
解决办法
187
查看次数