簡體   English   中英

ASP.NET MVC錯誤處理

[英]asp.net mvc error handling

我是一個新手.net mvc開發人員,我想知道,是否有必要開發自己的錯誤處理程序而不使用著名的try / catch語句。 我正在使用XML文件在視圖中呈現組件,例如,我想獲取一條錯誤消息,該消息對於我知道我違反了基於xml文件的約束非常有用

(例如,如果我添加另一個沒有>'type'屬性的標簽,則可以在運行時為我生成一條消息)。 我希望我先表示清楚,

在Global.asax可以捕獲異常的情況下,global.asax在您的應用程序中有許多事件處理程序,例如Application_start或您需要Application_Error

void Application_Error(){

     Exception exception = Server.GetLastError();
     //do what you need with the exception...
}

實際上,我更喜歡使用ActionFilter類重寫OnActionExecuting,OnActionExecuted,OnResultExecuting和OnResultExecuted方法。 而且我認為無法從C Sharp完成xml屬性的控制,那么我將使用if條件。 不管怎么說,還是要謝謝你

我認為處理異常的最佳位置是global.asax.cs。

protected void Application_Error(object sender, System.EventArgs e)
{
    // custom logger
    IErrorLogger errorLogger = new CustomLogger();

    // config of error handler
    MvcExceptionHandlerConfig config = new MvcExceptionHandlerConfig("Error", "Error", 404, 500);

    // init and handle
    new MvcExceptionHandler.MvcExceptionHandler(this, errorLogger, config).Handle();
}

演示可在這里找到: https : //github.com/mholec/mvcexceptionhandler

當然,這取決於您要處理哪種異常。 Application_Error是處理錯誤400、404、5xx等的好地方,另一方面,它不適用於身份驗證錯誤(您需要創建特殊的過濾器)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM