В этом конкретном сценарии утверждают более подходящие исключения?Об утверждениях и исключениях; Java
Полагаю, что утверждение должно использоваться, когда программа FUBAR до такой степени, что она не может восстановиться и выйдет.
Мне также сказали, что всегда делали исключения для ясности и обработки сообщений об ошибках.
Есть ли тонкая грань между тем, когда использовать каждый? Есть ли пример, где утверждение должно использоваться вместо исключения безоговорочно?
public void subscribe(DataConsumer c) throws IllegalArgumentException {
if (c == null) {
// Almost certainly FUBAR
throw new IllegalArgumentException("Can't subscribe null as a DataConsumer. Object not initialized");
}
if (dataConsumerList == null) {
// Definetely FUBAR
throw new IllegalArgumentException("Nothing to subscribe to. DataConsumerList is null");
}
dataConsumerList.add(c);
}
Соответствующий вопрос по этой теме http://stackoverflow.com/questions/3806173/assert-keyword-in-java. – CoolBeans