获取Java应用程序中的所有异常

时间:2012-01-09 06:47:04

标签: java exception

如何在一个地方获取Java应用程序中的所有异常(包含多个类和包)? 示例:创建一个类,获取其他应用程序类的所有异常

5 个答案:

答案 0 :(得分:3)

正如其他已经指出的那样,一个选项是将您的主要方法放在try-catch

public static void main( String[] args ){
  try{
    //regular main code
  } catch (Throwable e){
    //do exception handling
  }
}

另一种可能性是使用Thread#setDefaultUncaughtExceptionHandler方法在Thread上设置默认的uncaughtExceptionHandler。

请注意,如果两个解决方案都没有被应用程序中的其他位置捕获,那么这两个解决方案只允许您“在一个地方处理所有异常”

答案 1 :(得分:1)

为什么不简单地使用具有2个功能的课程ExceptionHandler

void handleException(Exception e);
void handleThrowable(Throwable t);

并且每try{}catch(Exception e){}只使用ExceptionHandler.handleException(e);

要了解抛出的异常,请使用instanceof

例如。

if(e instanceof NullPointerException)
{
//whatver
}

答案 2 :(得分:0)

在您的主要课程中,您可能会遇到以下情况:

try { } catch (Exception ex) { }

在其他课程中,您应抛出例外情况,例如:

public void example() throws Exception { }

如果你抛出其他类的例外,你可以只在主类中处理它们。

答案 3 :(得分:0)

Exception及其子类是Throwable的一种形式,表示合理的应用程序可能想要捕获的条件。

如果所有方法都向主调用方法抛出异常,那么您可以捕获所有异常。

异常类的层次结构从Throwable类开始,Throwable类是整个异常类系列的基类,在java.lang package中声明为java.lang.Throwable

答案 4 :(得分:0)

您可以使用:

尝试{

//  block of code ...

} catch(例外e){

// Do something with e

}