Разработка SharePoint в C # + Лучший способ справиться с обработкой ошибок - PullRequest
4 голосов
/ 30 июля 2010

В прошлом году я занимался разработкой страниц и веб-частей в SharePoint 2007/2010.Одна из вещей, которую я всегда включаю в свой код, это блоки try / catch для обработки ошибок при возникновении исключения.Таким образом, если у меня есть веб-часть, которая ломается, я показываю пользователю хорошее сообщение об ошибке в этой конкретной веб-части, а не в верхней части страницы или в случае полной ошибки страницы.Я в порядке с этим процессом, но я ищу некоторую информацию о моем подходе к использованию блоков try / catch (так как я понимаю, что это может повлиять на производительность).

В общем, я всегда использую блоки try / catch при выполнении вызовов БД или веб-службы.Я даже иногда оборачиваю свой общий код C # в блоки try / catch, если реализована сложная логика (и я не смог протестировать все разные случаи).Иногда у меня возникает небольшая паранойя, и я завершаю весь код во всю веб-часть с помощью try / catch.

Могу ли я получить некоторые отзывы об использовании блоков try / catch для общего C #разработка, и в частности разработка C # в мире SharePoint?Кроме того, я хотел бы понять, как эффективно встраивать try / catch в мой код C # при разработке решений SharePoint (есть ли более глобальный способ сделать это?)

Заранее спасибо.

1 Ответ

1 голос
/ 02 августа 2010

С обработкой ошибок в мире SharePoint вы обычно будете сосредоточены на производительности.Если вы беспокоитесь о производительности, вы, возможно, захотите, чтобы исключения возникали по мере возможности.Я обычно заключаю методы входа в блоки try / catch.Например, обработчики событий в формах asp.net, веб-части, пользовательские элементы управления и т. Д. Затем я оберну код в утилитах, доступе к данным и т. Д., Когда я хочу выбросить пользовательские типы исключений, настроить сообщение об ошибке и т. Д.

К сожалению, я не нашел глобального способа обработки ошибок в SharePoint.Я сделал служебный метод HandleError для веб-частей, которые я передаю в 'this' и объекте исключения.(Элемент веб-части WSPBuilder Extensions действительно имеет хорошую реализацию этой встроенной функции.) Однако сами блоки try / catch по-прежнему локальны для обработчиков событий веб-части.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...