Как правило, метод, подпрограмма, компонент, служба или система должны генерировать исключение только тогда, когда не может выполнить (успешно завершить) то, что ему было предложено .
«все, что просили сделать», конечно, несколько субъективно. Например, если у вас есть метод в служебной библиотеке с именем SaveFile (), и он не может сохранить файл, но вы вызвали его с клиента, который пытается сохранить файл в месте, которое может существовать или может существовать, и клиентскому приложению даже не важно, будет ли файл сохранен или нет ... Тогда метод служебной библиотеки SaveFile () должен по-прежнему генерировать исключение, а клиент должен проглотить его в том месте, где он был вызван.