ฉันมีรหัสพื้นฐานเพื่อระบุข้อผิดพลาดในแอปพลิเคชัน MVC ของฉัน ขณะนี้อยู่ในโครงการของฉันฉันมีตัวควบคุมที่เรียกว่าError
ด้วยวิธีการดำเนินการHTTPError404()
, และHTTPError500()
พวกเขาทุกคนยอมรับพารามิเตอร์สตริงGeneral()
error
การใช้หรือแก้ไขโค้ดด้านล่าง อะไรคือวิธีที่ดีที่สุด / เหมาะสมในการส่งข้อมูลไปยังตัวควบคุมข้อผิดพลาดเพื่อประมวลผล ฉันต้องการวิธีแก้ปัญหาที่แข็งแกร่งที่สุด
protected void Application_Error(object sender, EventArgs e)
{
Exception exception = Server.GetLastError();
Response.Clear();
HttpException httpException = exception as HttpException;
if (httpException != null)
{
RouteData routeData = new RouteData();
routeData.Values.Add("controller", "Error");
switch (httpException.GetHttpCode())
{
case 404:
// page not found
routeData.Values.Add("action", "HttpError404");
break;
case 500:
// server error
routeData.Values.Add("action", "HttpError500");
break;
default:
routeData.Values.Add("action", "General");
break;
}
routeData.Values.Add("error", exception);
// clear error on server
Server.ClearError();
// at this point how to properly pass route data to error controller?
}
}