手机版

asp.net核心手动音量调节全局过滤器之例外过滤器过滤器(1)

时间:2021-09-03 来源:互联网 编辑:宝哥软件园 浏览:

本系类将会讲解ASP。网核心手动音量调节中的内置全局过滤器的使用,将分为以下章节

ASP。网核心手动音量调节过滤器之例外过滤器过滤器(一)

ASP。网核心手动音量调节过滤器之动作过滤器过滤器(二)

ASP。网核心手动音量调节过滤器之结果过滤器过滤器(三)

ASP。网核心手动音量调节过滤器之资源筛选器过滤器(四)

ASP。网核心手动音量调节过滤器之授权过滤器过滤器(五)

简介

异常过滤器,顾名思义,就是当程序发生异常时所使用的过滤器。用于在系统出现未捕获异常时的处理。

实现一个自定义异常过滤器

自定义一个全局异常过滤器需要实现IExceptionFilter接口

公共类httpglobalexception filter : IExceptionFilter { public void one exception(exception context context){ throw new notimplementdexception();} } IExceptionFilter接口会要求实现一个例外方法,当系统发生未捕获异常时就会触发这个方法一个例外。方法有一个异常上下文异常上下文,其中包含了具体的异常信息,HttpContext及手动音量调节路由信息。系统一旦出现未捕获异常后,比较常见的做法就是使用日志工具,将异常的详细信息记录下来,方便修正调试。下面是日志记录的实现。

///摘要///全局异常过滤器////摘要公共类httpglobalexception filter : IExceptionFilter { readonly ILoggerFactory _ logger factory;readonly IHostingEnvironment _ env;public httpglobalexception filter(ILoggerFactory logger factory,IHostingEnvironment env){ _ logger factory=logger factory;_ env=env}公共void一个异常(异常上下文上下文){ var logger=_loggerFactory .CreateLogger(上下文。异常。TargetSite。反射类型);伐木工。日志错误(新的事件标识(上下文。异常。HResult),上下文。异常,上下文。异常。消息);var json=new ErrorResponse('未知错误,请重试');if (_env ).IsDevelopment()) json .DeveloperMessage=context .例外;语境result=new ApplicationErrorResult(JSON);语境HttpContext .回应。statuscode=(int)HttpStatusCode .内部服务器错误语境异常处理=真}公共类ApplicationErrorResult :对象结果{ public ApplicationErrorResult(对象值):底座(值){ StatusCode=(int)Httpstatuscode .InternalServerError} }公共类错误响应{公共错误响应(字符串消息){消息=消息;}公共字符串消息{ get设置;}公共对象DeveloperMessage { get设置;} }注册全局过滤器

过滤器已经编写完毕,接下来就需要在ASP。网核心手动音量调节中注册。找到系统根目录Startup.cs文件,修改配置服务方法如下

服务AddMvc(选项={选项.过滤器。addhttpglobalexception筛选器();});测试

在请求中抛出一个异常

日志正确捕获到异常信息

浏览器返回500错误,并且返回自定义的错误信息。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

版权声明:asp.net核心手动音量调节全局过滤器之例外过滤器过滤器(1)是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。