Asp.net Hata Yönetimi – Global.asax
Asp.net ile yaptığınız sitede herhangi bir hata olduğunda, hata kaynağını ve bilgilerini alabilir ve hata olduğunu belirten bir sayfaya yönlendirebilirsiniz ;
Hata yönetimi global.asax dosyası ile yapılabilir. Projeye global.asax dosyası ekledikten sonra “Application_Error” alanına örnekteki gibi bir kod yazılabilir;
//
//
//
void Application_Error(object sender, EventArgs e) //sitede bir hata olduğunda çalışır.
{
Exception ex = Server.GetLastError().GetBaseException(); //Son hatayı aldık
string err = ex.Message;//Hatayı string bir değere atadık
MailGonder(err);//Hatayı querystring,ResponseWrite(err) yöntemi yada session ile alıp sayfaya yazabilir veya kendinize mail gönderebilirsiniz
Server.ClearError();//Bilgilerini aldığımız hatayı temizledik
Response.Redirect("http://siteadi.com/Hata/error.html", false); //Kullanıcıyı hata olduğunu belirten bir sayfaya veya anasayfaya yönlendirebiliriz
}
//
//
//
Server.GetLastError().GetBaseException() ile hata mesajı yanında aşağıdaki bilgileride alabilirsiniz;
//
//
//
Exception ex = Server.GetLastError().GetBaseException();
string err = ex.Message; // Hatanın nedeni - hata mesajı
string err = ex.StackTrace; // Hatanın oluştuğu sayfanın konum bilgisi
//Hatanın oluştuğu sayfaya gönderilen querystringler
for (int i = 0; i < Request.QueryString.Count; i++)
{
string err += Request.QueryString.Keys[i] + " - " + Request.QueryString[i] + "<br />"; //Querystring keys ve değerleri
}
//Hatanın oluştuğu sayfaya gönderilen Form verileri
for (int i = 0; i < Request.Form.Count; i++)
{
string err += Request.Form.Keys[i] + " - " + Request.Form[i] + "<br />";
}
//Sunucudan alınan bilgiler
for (int i = 0; i < Request.ServerVariables.Count; i++)
{
string err += Request.ServerVariables.Keys[i] + " - " + Request.ServerVariables[i] + "<br />";
}
//
//
//
Yorumlar
Yorum Gönder