Подсчет исключений

1

У меня есть класс WelcomeException, и я выбрал свое исключение, но теперь я пытаюсь выяснить, как подсчитать количество раз, когда это исключение выбрано, а затем распечатать счет.

Вот код:

public class WelcomeException extends Exception {

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

}
Теги:
class
exception
count
throw

2 ответа

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";
}
  • 0
    Не потокобезопасный ...
  • 0
    @fge обновил его
Показать ещё 11 комментариев
0

У вас может быть статическая переменная (переменная класса), чтобы подсчитать время, в течение которого генерируется исключение:

private static int count = 0;

и увеличить его в конструкторе

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

поэтому он будет увеличиваться, когда вы бросаете исключение, как

throw new WelcomeException("...");

Затем вы можете определить метод геттера:

public static int getCount() {
    return count;
}

и напечатать результат, как:

System.out.println("WelcomeException has been thrown " + WelcomeException.getCount() + " times.");
  • 0
    Не потокобезопасный ...
  • 0
    Большое спасибо! Теперь, если я хочу напечатать счет в моем сообщении об ошибке, чтобы посмотреть это: я знаю, что я поставил: Ошибка печати сообщения {счет} раз, как я мог бы поступить об этом? Извините, если этот вопрос является основным. Я очень новый.
Показать ещё 5 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню