标签:core exception Middleware 中间件 next public context app response
1、中间件(Middleware)拦截所有的异常并返回给调用者
- public class ExceptionHandler
- {
- private readonly RequestDelegate _next;
- public ExceptionHandler(RequestDelegate next)
- {
- _next = next;
- }
- public async Task Invoke(HttpContext context)
- {
- try
- {
- await _next.Invoke(context);
- }
- catch (Exception ex)
- {
- await HandleExceptionAsync(context, ex);
- }
- }
- private async Task HandleExceptionAsync(HttpContext context, Exception exception)
- {
- var response = context.Response;
- response.ContentType = "application/json";
- response.StatusCode = (int)HttpStatusCode.InternalServerError;
- await response.WriteAsync(JsonConvert.SerializeObject(new
- {
- // customize as you need
- error = new
- {
- message = exception.Message,
- exception = exception.GetType().Name
- }
- }));
- }
- }
- 2、在Startup.cs中Configure方法中配置
TRANSLATE with x English TRANSLATE with COPY THE URL BELOW Back EMBED THE SNIPPET BELOW IN YOUR SITE Enable collaborative features and customize widget: Bing Webmaster Portal Back
- public void Configure(IApplicationBuilder app, IHostingEnvironment env, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory)
- {
- loggerFactory.AddNLog();
- env.ConfigureNLog(Path.Combine(AppContext.BaseDirectory, "nlog.config"));
- if (env.IsDevelopment())
- app.UseDeveloperExceptionPage();
- else
- app.UseMiddleware<ExceptionHandler>();
- app.UseMvc();
- }
标签:core,exception,Middleware,中间件,next,public,context,app,response
来源: https://www.cnblogs.com/zwbsoft/p/16151818.html
本站声明:
1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。