有时当
JDK
声明一个方法时,例如Integer.parseInt(String s)
它会抛出一个NumberFormatException
,但是当调用该方法时你不需要try和catch,我如何在我自己的代码中做到这一点?
不太清楚您到底在问什么 - 未经检查的异常或如何避免 try-catch-finalize 块。
如果您对方法如何抛出异常而不声明抛出异常(在主体之前)感兴趣,那么请注意,Java 编程语言不需要方法来捕获或指定 unchecked 异常 ("RuntimeException", "Error “,及其子类)。
相反,您始终必须处理(或声明抛出)所有其他类型的异常。
但是,如果您想知道如何避免
try-catch-finalize
块,那么您可以通过声明抛出异常的方法来向调用者抛出异常,如下所示:
[access-modifier] return-type methodName() throws Exception {
...
};
在方法声明后使用“throws”子句。例如:
public static void main(String[] args) throws IOException { }
基本上有两种例外情况。在 Java 中检查和取消检查。所有从 RuntimeException 派生的异常都未被检测,您不必捕获这些异常。
因此,如果您创建一个扩展 RuntimeException 的自己的异常,则不必捕获它。还要检查现有的,因为它们通常已经满足您的需求。就像 IllegalStateException 或 IllegalArgumentException 一样。
这个不需要try_catch的异常是从RuntimeException扩展而来的,而不是Exception类。
您可以像这样创建自己的 RuntimeException:
public class CustomException extends RuntimeException {
public CustomException(String msg) {
super(msg);
}
}
在这里,我给您留下了一个链接,其中包含有关不同异常以及如何处理它们的更多信息: https://howtodoinjava.com/java/exception-handling/checked-vs-unchecked-exceptions-in-java/