当前位置: 首页 > 面试题库 >

当main方法引发异常时,这意味着什么?

弘靖琪
2023-03-14
问题内容

我正在审查为准备明天早上的期末考试而做的期中考试。我把这个问题弄错了,但是没有指出正确的答案,因此我忽略了询问教授。

考虑以下代码片段:

public static void main(String[] args) throws FileNotFoundException

以下有关该代码的下列哪项正确?

  1. 主要方法旨在捕获和处理所有类型的异常。
  2. 主要方法是设计用来捕捉和处理鱼FileNotFoundException
  3. 如果FileNotFoundException出现这种情况,则main方法应该简单地终止。
  4. 如果发生任何异常,main方法应该简单地终止。

我选择了第二个选项。


问题答案:

答案是数字4

4.-如果发生任何异常,则main方法应该简单地终止。

throws子句仅声明该方法抛出一个已检查的FileNotFoundException,并且调用方法应捕获或重新抛出该异常。如果在main方法中抛出了一个非检查异常(并且没有捕获),它也会终止。

检查此测试:

public class ExceptionThrownTest {

    @Test
    public void testingExceptions() {

        try {
            ExceptionThrownTest.main(new String[] {});
        } catch (Throwable e) {
            assertTrue(e instanceof RuntimeException);
        }

    }

    public static void main(String[] args) throws FileNotFoundException {

        dangerousMethod();

        // Won't be executed because RuntimeException thrown
        unreachableMethod();

    }

    private static void dangerousMethod() {
        throw new RuntimeException();
    }

    private static void unreachableMethod() {
        System.out.println("Won't execute");
    }
}

如您所见,如果抛出RuntimeException异常,即使抛出的异常不是FileNotFoundException



 类似资料: