gpt4 book ai didi

java - 为什么 NumberFormatException 是运行时的?

转载 作者:IT老高 更新时间:2023-10-28 20:41:57 26 4
gpt4 key购买 nike

运行时异常表示合约损坏(如 NPE),如果代码没有错误,则永远不应抛出。它始终指示代码中的错误(与断言相同,但断言用于内部类错误,而运行时用于类的客户端错误)。

永远不应该捕获运行时异常。

另一方面,已检查的异常是签名的一部分,应该被捕获和处理。它们可能表示用户输入错误或外部资源问题(如 IOException)。

我不明白为什么 NumberFormatException 是运行时的?

最佳答案

首先,谁告诉你的

Runtime exceptions should never be caught

对 Java 了解不多。不要听他们的——他们错了。

NumberFormatException 是运行时异常:选择未经检查的异常是因为它们表示编程错误。在调用 Integer.parseInt() 之前可以知道 (例如)字符串 is 是一个有效的整数,例如这只是一种方法:

if (str.matches("^\\d{1,8}$") {
int myInt = Integer.parseInt(str); // will never throw NumberFormatException
}

因此,遇到一个错误可以被认为是编程错误 - 程序员选择首先检查。

如果您对要解析的字符串的完整性/质量没有信心,很容易捕捉到:

try {
// parse your string
} catch (NumberFormatException e) {
// do something about it
}

使它成为运行时的另一个原因是,如果您确信自己不会得到一个,它不会用可能不必要的 try/catch block 使代码困惑,例如如果完全信任字符串数据的来源。

关于java - 为什么 NumberFormatException 是运行时的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7205624/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com