Насколько я понимаю, утверждения используются в тестах, чтобы проверить, верны ли предварительные и постусловия программиста, и если утверждения не выполнены, есть / есть ошибка / ошибки, которые необходимо отладить и исправить.
Утверждение - это программная конструкция, в которой разработчик заявляет («утверждает») условие, которое, по его мнению, всегда будет верным.Если условие оценивается как ложное на некоторых языках, выдается исключение, на других печатается сообщение , а на других программа перестает работать.
«Сообщение печатается», выделенное вприведенное выше определение привлекло мое внимание.
Мой вопрос заключается в том, можем ли мы расширить использование утверждений assert в самом коде и перехватывать AssertionErrors для регистрации сообщений, а не только тестов?В основном, чтобы избежать слишком многословных утверждений if-else (кстати, я ненавижу if-else, лично).Например, все перечисленные ниже
String response = aMethod(sendSomething);
if (response!=null && response!="") {
//blah blah
} else {
log.error("Response is null");
throw new NoDataFoundException();
}
можно заменить на приведенные ниже, которые предоставляют более подробные сообщения.
try{
assertThat(aMethod(sendSomething), notNullValue());
} catch (AssertionError e) {
log.error(e.getMessage());
}