对不起,如果这是一个非常基本的问题
至于我的理解,如果您有一个引发异常的方法,则无论何时使用该方法,都需要捕获它(或抛出它)。
但是,一些引发异常的方法不需要我像这样捕获它:
int num = Long.parseInt(sampleString);
有人可以解释一下吗?
对不起,如果这是一个非常基本的问题
至于我的理解,如果您有一个引发异常的方法,则无论何时使用该方法,都需要捕获它(或抛出它)。
但是,一些引发异常的方法不需要我像这样捕获它:
int num = Long.parseInt(sampleString);
有人可以解释一下吗?
Java 中有两种类型的异常:checked和unchecked。前者需要catch
编辑,而后者不需要。未选中Exception
是扩展RuntimeException
,Error
或其子类之一的类。
Long#parseLong
抛出一个NumberFormatException
which IS-A RuntimeException
。因此,这是一个未经检查的异常,不需要被捕获。
有一些例外情况从RuntimeException
. 这些被称为未经检查的异常,它们不必在您的方法签名中声明。通常,这些是为真正出错的事情保留的。
Java中有两种类型的异常。检查和未检查。不需要捕获未经检查的异常。未经检查的异常的一个很好的例子是 NullPointerException;您可以看到,如果开发人员需要捕获此异常代码将非常复杂。这将是疯狂的。引发未经检查的异常parseInt
的异常。
这些是RuntimeException
. RuntimeException
s 及其子类不需要被捕获。它们被称为未经检查的异常。