欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

如何設計一個全局異常處理器

林國瑞2年前13瀏覽0評論

如何設計一個全局異常處理器?

首先 樓主從事于

.NET

開發 所以就寫個

.NET

的全局異常處理器,哪MVC來說

1, 建立MyExecptionAttribute.cs類,寫入如下代碼:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.Mvc;

namespace Niunan.MVCShop.Code

{

public class MyExecptionAttribute : HandleErrorAttribute

{

public static Queue<Exception> ExceptionQueue = new Queue<Exception>();//創建隊列.

public override void OnException(ExceptionContext filterContext)

{

//將異常信息入隊.

ExceptionQueue.Enqueue(filterContext.Exception);//將異常信息入隊.

//filterContext.HttpContext.Response.Redirect("/error.html");

base.OnException(filterContext);

}

}

}

2,在Global文件代碼如下:

using Niunan.Utility;

using System;

using System.Collections.Generic;

using System.Linq;

using System.Threading;

using System.Web;

using System.Web.Http;

using System.Web.Mvc;

using System.Web.Routing;

namespace Niunan.MVCShop

{

// 注意: 有關啟用 IIS6 或 IIS7 經典模式的說明,

// 請訪問 http://;.microsoft.com/?LinkId=9394801

public class MvcApplication : System.Web.HttpApplication

{

protected void Application_Start()

{

AreaRegistration.RegisterAllAreas();

WebApiConfig.Register(GlobalConfiguration.Configuration);

RouteConfig.RegisterRoutes(RouteTable.Routes);

GlobalFilters.Filters.Add(new Code.MyExecptionAttribute()); //NET4建立的項目的話則是在APP_Stars/ConfigFilter.cs中

//通過線程開啟一個線程,然后不停的從隊列中或數據

string filePath = Server.MapPath("/Log/");

ThreadPool.QueueUserWorkItem(o =>

{

while (true)

{

try

{

if (Code.MyExecptionAttribute.ExceptionQueue.Count > 0)

{

Exception ex = Code.MyExecptionAttribute.ExceptionQueue.Dequeue();//從隊列中拿出數據

if (ex != null)

{

Tool.TxtLog(ex.ToString(), filePath + DateTime.Now.ToString("yyyyMMdd")+".txt");

}

else

{

Thread.Sleep(30);

}

}

else

{

Thread.Sleep(30);//避免了CPU空轉。

}

}

catch (Exception ex)

{

Code.MyExecptionAttribute.ExceptionQueue.Enqueue(ex);

}

}

}, filePath);

}

}

}

定義全局css名稱,如何設計一個全局異常處理器