При создании библиотеки.NET, какова политика обработки исключений? В определенном, какова Ваша политика об обработке исключений в вызовах библиотеки и представления их к коду вызова?
Например,
Какие инструкции и правила Вы предложили бы для обработки исключений в библиотеке.NET?
Будете ли вы относиться к библиотечной функции как к любой другой, таким образом позволяя всем исключениям, которые она не может обработать, вытекать из как есть?
Да, это определенно стратегия по умолчанию.
Создадите ли вы собственное исключение для этой библиотеки?
Да, если вызывающие могут что-то сделать с ситуацией и для этого они должны быть в состоянии отличить исключение от других исключений. Но это бывает довольно редко.
Как зависимость библиотеки от БД повлияет на вашу политику обработки исключений?
Зависимость от БД может повлечь за собой раскрытие параметров, позволяющих вызывающим пользователям указывать, как библиотека обрабатывает определенные исключения (например, MaximumDeadlockRetries
).
Будете ли вы перехватывать все исключения и вместо них бросать исключение библиотеки? Установите ли вы исходное исключение в качестве внутреннего исключения библиотеки исключение?
Нет, не все исключения. Для определенных исключений это вполне возможно, хотя единственный случай, который я могу представить, когда я мог бы захотеть это сделать, это когда моя библиотека уже пыталась обработать исключение (как в сценарии с базой данных выше) и потерпела неудачу.
Пользовательские исключения - когда они имеют смысл. Это случается не так часто благодаря некоторым общим исключениям во фреймворке.