allofw: (Енотовидный собак)
[personal profile] allofw
Тут такое дело, оказывает, ещё не все перешли на MVC, и иногда приходится развивать и поддерживать обычные Web Application'ы. И в них зачастую возникает потребность в сохранении ошибок, возникших у пользователя, а тому показывается красивое сообщение об ошибке.


Для промышленного отлова ошибок делаем простые шаги:

  1. изменяем Web-config
    <customErrors redirectMode="ResponseRedirect" mode="On" 
     defaultRedirect="/Pages/Error/Default.aspx">
          <error statusCode="404" redirect="~/Pages/Error/Error404.aspx"/>
          <error statusCode="500" redirect="~/Pages/Error/Error500.aspx"/>
    </customErrors>



    тут всё просто - по определённым ошибкам редиректим на специальные страницы, по дефолту - на дефолтную.

  2. изменяем Global.asax
    protected void Application_Error(object sender, EventArgs e)
    {
        try
        {
            Exception ex = Context.Error; // получили ошибку
     
            //для доступа с других страниц к ошибке, сохраним её в контекст
            HttpContext.Current.Application.Add("LastError", ex);
     
            // Сохраняем ошибку в БД
            using (var query = new DataSetPortalTableAdapter())
            {
                //query.SaveError(...);
            }
        }
        catch{...}
    }


  3. если нужно вывести сообщение на странице-заглушке (для определённой ошибки или же, наоборот, для дефолтной), то в коде получаем его с помощью
    lblError.Text = ((Exception) HttpContext.Current.Application.Get("LastError")).Message;


Всё просто.
From:
Anonymous( )Anonymous This account has disabled anonymous posting.
OpenID( )OpenID You can comment on this post while signed in with an account from many other sites, once you have confirmed your email address. Sign in using OpenID.
User
Account name:
Password:
If you don't have an account you can create one now.
Subject:
HTML doesn't work in the subject.

Message:

 
Notice: This account is set to log the IP addresses of everyone who comments.
Links will be displayed as unclickable URLs to help prevent spam.

Profile

allofw: (Default)
allofw

March 2013

S M T W T F S
      12
3456 7 8 9
10111213141516
17181920212223
24252627282930
31      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Sep. 24th, 2017 01:57 pm
Powered by Dreamwidth Studios