2016-03-14 3 views
2

Я использую ASP.NET 4.0. Некоторое время пользователь забывает написать блок try-catch для конкретной функции на странице. Он выдает исключение, и клиент видит желтый экран. Мне это не нравится. Я создал страницу Error.aspx для отображения сообщений об ошибках. Когда на странице возникает ошибка, я перенаправляю пользователя на Error.aspx. Как выполнять глобальную обработку ошибок в .NET?Глобальная обработка ошибок в ASP.NET

+0

можно определить тег обработчика ошибок в файле web.config, который по умолчанию будет перенаправлять вас на эту страницу –

+0

<режим CustomErrors = «On» defaultRedirect = «DefaultRedirectErrorPage.aspx»> <ошибка StatusCode =» 404 "redirect =" Http404ErrorPage.aspx "/>

+1

https://msdn.microsoft.com/en-us/library/bb397417.aspx –

ответ

0

Существует несколько способов перехвата исключений в ASP.NET. Похоже, вы не используете MVC. В этом случае я предпочитаю метод Application_Error в файле global.asax. См. Здесь для примера: https://msdn.microsoft.com/en-us/library/24395wz3.aspx

Вы также можете использовать IIS для перехвата исключений и обслуживания страницы с помощью cusomErrors в web.config. Однако вы не можете регистрировать исключения таким образом, чтобы он не был предпочтительным в качестве основного способа обработки ошибок. Однако хорошей практикой является установить это на страницу ошибки резервного копирования в качестве окончательного метода catch-all в случае, если на главной странице ошибок есть исключение.

<customErrors defaultRedirect="Error.aspx" mode="RemoteOnly"> 
    <error redirect="404.aspx" statusCode="404" /> 
</customErrors> 
+0

Спасибо mnwsmit за помощь ur. Я хотел бы спросить u. Предположим, что есть 2 пользователя, которые обращаются к странице 2 diff, оба получили ошибку, User1 получили ошибку user1 и user2, ошибка user2.User1 получит ошибку user2 . Я путаюсь из-за следующей строки. Исключение excp = Server.GetLastError(); –

+0

Интересная мысль. Я никогда не замечал проблемы с этим. Либо это состояние гонки, которое очень редко происходит, либо Server.GetLastError() всегда возвращает последнюю ошибку для * текущего * запроса. – mnwsmit

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