2009-04-27 6 views
2

Я новичок в SharePoint, поэтому я думаю, как мне нужно обрабатывать исключения? Когда я пишу специальный код, я должен проверить их или, может быть, если они будут брошены, они автоматически заходят в журнал и не нарушают приложение?Как обрабатывать исключения SharePoint?

Если нет, то как мне их записать?

Спасибо!

Редактировать: И как я должен регистрировать эти исключения?

ответ

2

Используйте для записи в журнал: http://msdn.microsoft.com/en-us/library/aa979522.aspx

Если вы не обрабатывать ваши исключения приложения, скорее всего, перерыв. Некоторые ошибки, например, созданные в приемниках событий, не будут «ломать» приложение (за исключением прекращения приема приемника событий). Те, наряду со всеми другими непосещенными ошибками, попадут в журнал, если вы не изменили настройки в центральном админе.

+0

Вы говорите, что «приложение, скорее всего, перерыв», но после того, что «вся остальные uncatched ошибка будет в конечном итоге в журнале». Не могли бы вы уточнить, пожалуйста? –

+0

http://channel9.msdn.com/posts/akMSFT/pp-SharePoint-Development-Guidance-v2-Whats-in-Drop-8/ содержит хорошее описание обработки исключений в SharePoint. – JMD

1

Общее правило с исключениями заключается в том, что вы должны только поймать исключения, которые вы знаете, как правильно обрабатывать себя - я не знаю, если sharepoint регистрирует необработанные исключения самостоятельно, но я думаю, что он преобразует необработанные исключения в соответствующее исключение SOAP в различные веб-сервисы, поэтому неплохо, что вы не будете разбивать все приложение.

1

Мы разрешаем всем нашим исключениям пузыриться и использовать собственный HTTP-модуль для обработки всех исключений. Отсюда мы заходим в журналы ULS, а также в журналы трассировки. Это в основном снимается с SharePoint MVP Chris O'brien's Code

Мы используем исключения только в том случае, если мы чувствуем, что можем добавить дополнительное значение к исключению, а затем повторно выбросить ошибку, позволяя http-модулю забрать ее.

1

В этой статье «Упрощение отладки SharePoint путем создания инструментария устранения неполадок» http://sharepointmagazine.net/technical/development/getting-started-with-sharepoint-programming-simplifying-sharepoint-debugging-by-creating-the-troubleshooting-toolbox. Он имеет несколько полезных советов по протоколированию, отладке и т. Д. При разработке приложения для SharePoint.

1

Я предполагаю, что вы используете объектную модель SharePoint, а не ее веб-службы, поскольку вы не указали, какая из них и как обычно используется для объектной модели, поскольку она обеспечивает большую функциональность.

SharePoint использует свой собственный класс SPException для исключения исключений, а также для нескольких стандартных классов исключений .NET. К сожалению, в документации SDK не упоминается, какие методы генерируют исключения и когда это может произойти. Ваш собственный опыт и Reflector лучше всего изучают это.

При первом обучении вы, вероятно, будете часто вызывать исключения, и может быть совершенно непредсказуемо узнать, когда и почему это происходит. Те, что выбраны SPException, обычно имеют полезные сообщения, однако стандартные исключения .NET, которые также генерирует SharePoint (например, ArgumentOutOfRangeException), дают очень мало деталей. Поэтому, чтобы помочь отлаживать, как правило, рекомендуется держать ваши методы короткими и точными, поэтому легко найти, почему может возникнуть исключение. Вам нужно только проверить их, если есть веская причина, позволяющая им пузыриться, если вы не сможете восстановить и добавить больше деталей (suggested by Peter) - это хороший подход для обеспечения правильности и сохранения вашего кода.

SharePoint обычно не автоматически регистрирует исключения. Иногда вы найдете их в ULS (a.k.a. Trace Log) files, но, как правило, при регистрации они не предоставляют больше информации, кроме тех исключений, которые вы можете поймать. Существует много вариантов настройки собственного ведения журнала, как уже упоминалось здесь. Вы также можете найти отличный список на SharePoint Dev Wiki.

Смежные вопросы