Из того, что я прочитал (в конце статьи), Мартин говорит, что хорошо делать обе вещи - быстрый сбой, предоставление значимого исключения и «медленный отказ» - давая пользователю возможность, скажем, обратиться в службу поддержки.и продолжить выполнение задач, которые могут быть успешно выполнены независимо от исключения.
В этом случае пример системы Batch был очень удачным - хотя 1 элемент из пакета может не работать, пользователь, скорее всего, захочет получить остальные.чтобы быть осторожным, вот почему вы генерируете исключение, которое перехватывается глобальным обработчиком (глобальный обработчик решает продолжить со следующего элемента и объединяет ошибку, чтобы он мог показать ее пользователю и отправить уведомление команде разработчиков).
Таким образом, оба способа завершены - большая часть работы пользователей выполнена, и принцип быстрого отказа также срабатывает.
Так что это зависит от вашего конкретного случая - возможно, если ваш класс участвует вдругие операции будут иметь более глобальный класс (или класс вызывающего, который его использует), который будетможет лучше решить, может ли он продолжаться или нет.
С другой стороны - ваш класс не должен быть в состоянии определить, может ли вызывающий класс выполнить какую-либо другую работу в случае сбоя, поэтому вам нужно броситьваше исключение в конструкторе, да.Это то, что я думаю - ДА :).Поэтому, если ваш класс представляет элемент пакета - вызывающая сторона, скорее всего, поймает исключение и продолжит работу.Если это какой-то класс точки входа - тогда вы, вероятно, хотите изящно обработать исключение (или вообще не выдавать его), показать пользователю сообщение об ошибке и предоставить подробную информацию (журнал), чтобы команда разработчиков могла легко сообщитьгде проблема была.