У меня есть класс WelcomeException, и я выбрал свое исключение, но теперь я пытаюсь выяснить, как подсчитать количество раз, когда это исключение выбрано, а затем распечатать счет.
Вот код:
public class WelcomeException extends Exception {
public WelcomeException( String message ) {
super( message );
}
}
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";
}
У вас может быть статическая переменная (переменная класса), чтобы подсчитать время, в течение которого генерируется исключение:
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.");