0

对不起,如果这是一个非常基本的问题

至于我的理解,如果您有一个引发异常的方法,则无论何时使用该方法,都需要捕获它(或抛出它)。

但是,一些引发异常的方法不需要我像这样捕获它:

int num = Long.parseInt(sampleString);

有人可以解释一下吗?

4

4 回答 4

2

Java 中有两种类型的异常:checkedunchecked。前者需要catch编辑,而后者不需要。未选中Exception是扩展RuntimeException,Error或其子类之一的类。

Long#parseLong抛出一个NumberFormatExceptionwhich IS-A RuntimeException。因此,这是一个未经检查的异常,不需要被捕获。

参考:

于 2012-09-25T23:35:02.903 回答
1

有一些例外情况从RuntimeException. 这些被称为未经检查的异常,它们不必在您的方法签名中声明。通常,这些是为真正出错的事情保留的。

于 2012-09-25T23:34:55.573 回答
0

Java中有两种类型的异常。检查和未检查。不需要捕获未经检查的异常。未经检查的异常的一个很好的例子是 NullPointerException;您可以看到,如果开发人员需要捕获此异常代码将非常复杂。这将是疯狂的。引发未经检查的异常parseInt的异常。

于 2012-09-25T23:33:53.590 回答
0

这些是RuntimeException. RuntimeExceptions 及其子类不需要被捕获。它们被称为未经检查的异常。

于 2012-09-25T23:34:12.337 回答