Java异常签入main()

时间:2017-03-09 16:29:20

标签: java

我有java项目包含大约10-15个java文件和类数。我想从main()中的catch块返回退出代码1,如果在这些程序中发生任何异常的话。但是所有类都有异常catch块,因此异常将在那里处理,而main()内的catch块不能“看到”它。

有没有办法检查项目中main()内项目中是否发生任何异常,而不更改其他文件中的任何代码,只能在起始点。

由于 Noushad

3 个答案:

答案 0 :(得分:0)

你不能。您需要修改其他类以向调用者抛出异常,以便您可以在main中捕获异常并返回所需的退出代码。

答案 1 :(得分:-1)

从所有类的所有方法中抛出异常,并在Main方法的catch块中捕获它。记录异常,然后退出。

public static void main(String[] args)
{
   try
    {
    ClassA.methodX();
    ClassB.method();
    }
    catch(Exception e) //use specific exception class
    {
     e.printsttrace();
     System.exit(1);
    }
}

A类

class classA
{
   public static void methodX() throws Exception
   {
    try{
    //perform some operation
    }catch(Exception e)
    {
       //throw exception from here.
    }
}

答案 2 :(得分:-1)

写一个共同的"记录"函数并从任何相关的catch块调用它。如果您需要退出该计划,请使用System.exit

public class Defines {
   public static LogException(Exception exception) {
      ... 

      if (ShouldExitFromException(exception))
         System.exit(1);
   }
}

代码中的其他地方:

try {
   // some code
} catch (Exception exception) {
   Defines.LogException(exception);
}

但这取决于你的其他捕获块实际上在做什么,说实话,这听起来都是个坏主意。记录异常可能没问题,因此您知道它们在何时何地发生,但即使是那些已经正确处理的程序也退出程序并不是一个好主意。