专业网站建设品牌,十四年专业建站经验,服务6000+客户--广州京杭网络
免费热线:400-683-0016      微信咨询  |  联系我们

如何设计一个全局异常处理器_CSS学习

当前位置:网站建设 > 技术支持
资料来源:网络整理       时间:2023/3/4 7:25:09       共计:3625 浏览

如何设计一个全局异常处理器?

首先 楼主从事于

.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);

}

}

}

版权说明:
本网站凡注明“广州京杭 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
欢迎扫描右侧微信二维码与我们联系。
·上一条:owhat怎么注销账号_vue | ·下一条:如何清除或替换软回车_js/jQuery

Copyright © 广州京杭网络科技有限公司 2005-2025 版权所有    粤ICP备16019765号 

广州京杭网络科技有限公司 版权所有