有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

从Java程序的主方法中抛出异常有什么意义?

从Java程序的主方法中抛出异常有什么意义, 因为它永远不会被任何调用方法捕获和处理

下面这句话真的没有道理,对吗

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

    parseCmdArgs(args); 

    try {
        CSVSingleton.tryToReadBothFiles(FILE1_PATH, FILE2_PATH);
    } catch (Exception e) {
        e.printStackTrace();
        System.exit(0);
    }

    run();

}

最好是:

public static void main(String[] args) {

        parseCmdArgs(args); 

        try {
            CSVSingleton.tryToReadBothFiles(FILE1_PATH, FILE2_PATH);
        } catch (Exception e) {
            e.printStackTrace();
            System.exit(0);
        }

        try {
            run();
        } catch (ReconToolException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }

Java应该阻止我们做前者吗?或者在更复杂的框架中,main方法能够在链的更上层抛出异常


共 (1) 个答案

  1. # 1 楼答案

    不仅可以捕获抛出的异常,还可以捕获来自TryToReadBothFile的异常

    如果你想知道为什么main方法上有一个'throws'关键字,我会假设parseCmdArgs可以抛出ReconToolException,而这个main的作者知道它永远不会被抛出,或者不想处理它。为了使程序能够编译,他必须做两件事之一:为异常添加一个“catch”,或向main添加一个“throws”。如果程序无论如何都要终止,他做什么都无关紧要。添加“抛出”会减少工作量