gpt4 book ai didi

java - 为什么这个抛出异常的方法在调用时不必位于 try catch block 中?

转载 作者:行者123 更新时间:2023-12-01 07:44:32 26 4
gpt4 key购买 nike

我调用了一个抛出异常的方法,但我不需要将此方法放置在 static void main(String args[]) 的 try catch block 内,即使本教程说我应该收到错误。为什么是这样?下面是我的代码和教程的链接。我尝试了教程中的第二个示例。

https://beginnersbook.com/2013/04/java-throws/?unapproved=133049&moderation-hash=486e9de11daa2c67068e84cdacd88794#comment-133049

public class Sample2 {

static void myMethod() throws ArithmeticException, NullPointerException {

System.out.println("myMethod has been successfully called");

throw new ArithmeticException("Arithmetic Expression has been thrown");
}

public static void main(String args[]) {
myMethod();
}
}

最佳答案

该教程有一个微妙的错误:虽然它明确指出有一种异常不需要捕获,但它没有注意到自己的示例中抛出的异常是未经检查的 ,即 Runtime 类型:

On the other hand unchecked exception (Runtime) doesn’t get checked during compilation. Throws keyword is used for handling checked exceptions.

ArithmeticException 替换为直接从 Exception 派生的异常以查看错误。

关于java - 为什么这个抛出异常的方法在调用时不必位于 try catch block 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56296180/

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