gpt4 book ai didi

Java main 函数必须抛出异常,但谁来处理它呢?

转载 作者:行者123 更新时间:2023-12-02 01:51:44 25 4
gpt4 key购买 nike

我编写了一个简单的程序,将“123”输出到“output.txt”中。我注意到,如果我不添加“抛出 FileNotFoundException”,java 甚至无法编译。如果我没有 throw 子句,控制台会显示 Unresolved 编译问题。 main 上未处理的异常类型 FileNotFoundException。

public static void main(String[] args) throws FileNotFoundException{
PrintWriter out = new PrintWrite("output.txt");
out.println("123");
out.close();
}
  1. 为什么我必须添加 throw 子句,我尝试在构建之前创建一个“output.txt”,但问题存在。

  2. 这是否意味着 main 方法将抛出 FileNotFoundException,但是处理它的函数是什么?

最佳答案

编译器告诉您需要添加 throws 声明,仅意味着您调用了一个(可以)抛出已检查异常的方法。相反,您可以自己捕获异常,以便您的方法无法通过不处理异常来引发异常。

public static void main(String[] args) {
try {
PrintWriter out = new PrintWrite("output.txt");
out.println("123");
out.close();
} catch (FileNotFoundException e) {
// do whatever else
}
}

解决您的具体问题:

  1. 您必须添加一个 throw 子句,因为如果您调用一个抛出异常的方法,并且您没有捕获它,那么您的方法将抛出该异常。创建“output.txt”文件不会有帮助,因为该方法仍然可能会抛出异常(您如何知道它在运行时会存在,仅仅因为它在编译时就存在?)。

  2. 如果main方法抛出异常,程序将会崩溃。

关于Java main 函数必须抛出异常,但谁来处理它呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52902984/

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