Я строю стандартное 3-уровневое веб-приложение ASP.NET, но я боюсь, где делать определенные вещи - в частности, обработку исключений.Как и где обрабатывать исключения в трехуровневом веб-приложении? В частности, Исключения базы данных Sql
Я попытался взглянуть в Интернете на некоторые примеры, но не могу найти ни одного, что доходит до целого проекта, показывающего, как все соединяется.
В моем ядре данных я подключаюсь к SQL Server и делаю некоторые вещи. Я знаю, что мне нужно поймать исключения, которые могут быть подняты в результате, но я не знаю, где это сделать.
Из того, что я прочитал, я должен делать это в UI-уровне, но в этом случае я не уверен, как обеспечить закрытие соединения с базой данных. Кто-нибудь может прояснить, как это сделать? Также, если кто-нибудь знает, где я могу найти примерное трехуровневое веб-приложение, которое следует за лучшими практиками, которые тоже будут хороши.
благодаря
спасибо за ответ. Что вы думаете по поводу обработки SQLExceptions? Для ошибок, возникающих в sproc, вы поймаете их в DAL и выбросите пользовательскую ошибку здесь или какую-нибудь альтернативу? – Nick
В моем текущем DAL (больше DA * tool *, который я передаю в свои бизнес-объекты, которые также являются полуфабрикатными объектами DAL) Я поймаю и обработаю несколько конкретных ошибок автоматически (например, ошибка жертвы тупика № 1205. Если Я вижу это, я попробую еще раз.), Но пусть большинство ошибок просачиваются. Иногда бизнес-объект может делать что-то умное с этой ошибкой; если я не позволю ему просачиваться. В моем DAL я скоро автоматически зарегистрирую ошибку и текст и параметры команды sql автоматически. Я счел полезным добавить текст sql в сообщение об ошибке, но это проблема безопасности. –
Только ошибки ловушки в sprocs/udf, если вы можете (** A **) восстановить/отреагировать/возможно, или, если (** B **), вы можете улучшить информацию об ошибках, которая просачивается вверх. Таким образом, по умолчанию в sproc/udf нет обработки ошибок, но иногда вы иногда добавляете к ним сообщение об ошибке. –