在检查我的错误处理代码时偶然发现了这一点。当您调用Integer.parseInt(null)Java时,引发NumberFormatException,而Float.parseFloat(null)引发NullPointerException。另请参阅Float和Integer文档
造成这种差异的原因是特定的技术还是设计原因,还是仅仅是出于历史原因?
这绝对是历史文物。
多年来,这种不一致和相关的文档问题已被作为Java Bug提出过几次。例如:
在最早的这些中,被指派处理此问题的Sun工程师写道:
可以预期会为null抛出相同的异常,这是合理的。但是,这些api很旧,因此此时可能无法更改。
将考虑使用Tiger。[那是Java 5.0]
2002-12-03
然后一年后:
由于异常行为是长期存在的,并且是在JavaDoc中指定的,因此此时更改任一方法的行为都是不切实际的。关闭将无法解决。
2003-10-21
| 归档时间: |
|
| 查看次数: |
117 次 |
| 最近记录: |