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