Как альтернативный взгляд на большинство ответов ...
Может быть полезно выбросить исключения из бизнес-логики, особенно если они вызваны ошибкой при проверке. Если вы ожидаете объект и получаете нулевое значение, это говорит о том, что какая-то проблема избежала обнаружения в пользовательском интерфейсе (или другом интерфейсе). На этом этапе может быть вполне допустимо выдавать исключения. Действительно, вы можете решить включить этот тип проверки в бизнес-логику при наличии нескольких интерфейсов.
Создание исключений в некоторых языках / платформах (я думаю .NET) может быть дорогостоящим, но это не должно сразу беспокоить вас. Это означает, что, как следует из названия, они используются для исключительных обстоятельств, а не как часть стандартного потока программы. Вы, конечно, не должны бросать исключение только для выхода из метода. Вам следует также рассмотреть возможность постепенного восстановления, где это возможно, которое может не включать выдачу исключения.
Итак, подводим итоги ... Это зависит ...