Вы пытаетесь вызвать родительский конструктор, который не существует.
class UserNotFoundException extends Exception {
public UserNotFoundException(Long id) {
super(id);
}
}
Класс Exception
предоставляет следующие конструкторы:
public Exception()
public Exception(String message)
public Exception(String message, Throwable cause)
public Exception(Throwable cause)
protected Exception(String message, Throwable cause,
boolean enableSuppression,
boolean writableStackTrace)
Если вы хотитечтобы увидеть сообщение с id
, вам придется преобразовать Long
в String
.
public UserNotFoundException(Long id) {
super(String.valueOf(id));
}
У вас также есть возможность иметь настраиваемые поля для исключения UserNotFoundException, если вы намереваетесьпри использовании ExceptionHandler
private Long id;
public UserNotFoundException(Long id) {
super();
this.id = id;
}
// Getters
Почему происходит сбой при преобразовании сообщения в строку: Проверено против Непроверенных исключений Имейте в виду, что Exception
является проверенным исключением, которое требует от васиметь явную обработку для - в противном случае, это не будет выполнено во время компиляции.
Возможно, вы захотите заглянуть в RuntimeException
, чтобы настроить непроверенное исключение.
Подробнее об этом см. в следующем.RuntimeException
против Exception
:
Разница между java.lang.RuntimeException и java.lang.Exception
Подобные вопросы и ответы приведены ниже.роInt вы в правильном направлении:
Как я могу написать пользовательские исключения?