Зависит.
Позволить ли возникать исключениям? Абсолютно. Но я хочу это для сбоя соединения, сбоев команд. Что бы вы ни делали, не просто скрывайте это, вам нужно знать о них. Я предпочитаю, чтобы мои приложения выходили из строя как можно быстрее, чтобы уменьшить побочные эффекты и дальнейший ущерб.
Я также регистрирую исключения. Я использую Log4net, чтобы помочь с этим. Но мне нравится регистрировать исключения у источника. Я позволю им всплыть оттуда.
Вернуть ноль? Если что-то не может быть найдено (то есть ищет что-то по id, а его там нет), тогда я возвращаю ноль, а не исключение. Но есть случаи, когда я вижу, как возникает новое исключение, когда это происходит.
Основной момент: исключения должны быть «исключительными», а не правилом. Если выдается исключение, это должно быть потому, что что-то действительно не так, и вам нужно это исправить.