运行时异常表示契约被破坏(如NPE),如果代码没有错误,就不应该抛出异常。它总是指示代码中的错误(与断言相同,但是断言是针对内部类错误的,而运行时是针对类的客户端错误的)。
运行时异常永远不应该被捕获。
另一方面,检查的异常是签名的一部分,应该被捕获和处理。它们可能表示用户输入错误或外部资源故障(如IOException
)。
所有这些我都不明白为什么NumberFormatException
是运行时?
发布于 2011-08-26 21:53:41
在解析配置文件时也可能抛出NumberFormatException
,在这种情况下,这将是程序员的错误。在解析用户输入时,通常使用NumberFormat
,它会抛出一个检查过的ParseException
。
发布于 2011-08-26 21:52:09
NumberFormatException扩展了IllegalArgumentException。这是运行时异常的原因是,完全有可能破坏接受String
并返回Number
的方法的约定。如果我传入123D
,并且没有正确的数据验证,那么这将是一个适当的非法参数。
发布于 2011-08-26 21:51:23
为什么NumberFormatException是运行时错误?如果你有一个对话框,用户在其中输入值,并且值不是数字,但被解析为数字,那么你可能想知道这一点。异常是最好的方法吗?也许不是,但事实就是如此。
https://stackoverflow.com/questions/7205624
复制相似问题