计算抛出的异常

时间:2014-03-14 17:20:03

标签: java class exception count throw

我有一个WelcomeException类,我抛出了异常,但现在我试图弄清楚如何计算抛出异常然后打印计数的次数。

以下是代码:

public class WelcomeException extends Exception {

    public WelcomeException( String message ) {
         super( message );
    }

}

2 个答案:

答案 0 :(得分:1)

public class WelcomeException extends Exception {
    private static int count = 0;
    private static final Object countLock = new Object();

    public WelcomeException(String message)
    {
        super(message);
        synchronized(countLock)
        {
            count++;
        }
    }

    public static int getCount()
    {
        return count; //atomic. Doesn't need synchro.
    }
} 

您对其他答案的评论:

  

现在,如果我想在错误消息中打印计数来查看:我   知道我说:错误打印消息{count}次我怎么办   那?如果这个问题很基本,我很抱歉。我很新。

要执行此操作,请覆盖getMessage()方法,如下所示:

public String getMessage()
{
    return 
          super.getMessage() + 
          ", This exception has occurred " + 
          getCount() + 
          " times";
}

答案 1 :(得分:0)

您可以使用静态变量(类变量)来计算抛出异常的次数:

private static int count = 0;

并在构造函数中增加它

public WelcomeException(String message) {
    super(message);
    count++;
}

所以当你抛出像

这样的异常时它会增加
throw new WelcomeException("...");

然后你可以定义一个getter方法:

public static int getCount() {
    return count;
}

并打印结果如:

System.out.println("WelcomeException has been thrown " + WelcomeException.getCount() + " times.");