Что такое ошибка утверждения? В каком случае мне следует выбросить его из собственного кода?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Что такое ошибка утверждения? В каком случае мне следует выбросить его из собственного кода?

Сообщение Anonymous »

В пункте 2 книги «Эффективная Java, 2-е издание» есть такой фрагмент кода, в котором автор хочет запретить пустую инициализацию объекта.

Код: Выделить всё

class Example {
private Example() {
throw new AssertionError();
}
}
Меня смущает тип выброшенного исключения.

Я не понимаю, является ли AssertionError выдается только из-за отсутствия более подходящих ошибок или потому, что так и должно быть.

Насколько я понимаю, эта ошибка выдается платформой, когда оператор утверждения завершается с ошибкой. Кроме того, в javadoc просто написано:


[An AssertionError is] Выбрасывается, чтобы указать, что утверждение не выполнено.


Но я не вижу, чтобы здесь нарушалось какое-либо утверждение (верно-ложное утверждение).
Конечно, «Вы не должны создавать экземпляр элемента оператор этого класса" был нарушен, но если это логика, стоящая за этим, то мы все должны повсюду выбрасывать AssertionError, а это, очевидно, не то, что происходит.

Кстати, я бы просто бросил

Код: Выделить всё

new IllegalStateException("Must not instantiate an element of this class")
Что-то в этом не так? В каком случае мне следует выдать AssertionError в моем собственном коде?

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

Подробнее здесь: https://stackoverflow.com/questions/248 ... y-own-code
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»