Рекомендации по обработке исключений sql в приложении dot net
Учтите, что в приложении asp.net 3.5 имеется многоуровневая архитектура с языком C# и базой данных на сервере sql 2008.
Предположим, мы назвали хранимую процедуру существующей в базе данных на нашем уровне доступа к данным. Но при выполнении хранимой процедуры она получает исключение. (что может облегчить выброс в хранимой процедуре), тогда как приложение знает, что именно является исключением?
Есть ли у ADO.NET возможность понимать и представлять выданные исключения сервером sql sql. Я знаю, что есть пространство имен SQLException, предоставляемое модулем обработки исключений CLR. но, по моему опыту, этот модуль не может представлять исключения проверки, как это встречается в SQL Server. Может кто-нибудь исправить меня и правильно руководить обработкой исключений сервера sql из приложения dot net? и как мы можем справиться с ними? мы должны ждать выполнения / достижения в блоке catch всегда на уровне доступа к данным?
Может быть, этот вопрос повторяется, но я хочу поделиться своим опытом.
1 ответ
Вы должны проверять и / или очищать все данные, которые были введены до того, как они попадут в базу данных, поэтому, если БД отсутствует или в SP есть ошибка, вы не должны получать исключения SQL.
Исходя из моего опыта, вы могли бы поймать его в журнале исключений SQL, обернуть его в ApplicationException и вернуть в пользовательский интерфейс ошибку, понятную пользователю.