【aspnetcore】异常捕捉可用知识点
1、使用过滤器ExceptionFilter;补充:常用过滤器:AuthorizationFilter、ActionFilter、ResultFilter、ResourceFilter、ExceptionFilter。
public class ErrorHandlerAttribute : TypeFilterAttribute
{
public ErrorHandlerAttribute() : base(typeof(ErrorHandlerFilter))
{
} private class ErrorHandlerFilter : IExceptionFilter
{
private readonly ILogger _log; public ErrorHandlerFilter(ILoggerFactory loggerFactory)
{
_log = loggerFactory.CreateLogger("CustomerExceptionHandler");
} public void OnException(ExceptionContext context)
{
var message = context.Exception.Message;
var log = context.Exception.StackTrace; _log.LogError(message, log);
}
}
}
注意这种方式并不能拦截输出,如果在action内抛出异常,会继续执行全局定义的异常处理程序。但可以用来记录异常。
2、app.UseExceptionHandler("/Home/Error"),在action中使用下面的代码获取异常消息:
[ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]
public IActionResult Error()
{
var exceptionHandlerFeature = HttpContext.Features.Get<IExceptionHandlerFeature>();
var message = exceptionHandlerFeature.Error.Message;
if (HttpContext.Request.IsAjax()) // 自定义方法,是否是ajax请求
{
return Json(new {code = 500, message = message});
}
else
{
return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });
}
}
3、app.UseStatusCodePagesWithReExecute("/Home/Error/{0}") 和 app.UseStatusCodePagesWithRedirects("/Home/Error/{0}") 根据返回的status code指定异常的处理程序。
第一个方法直接使用控制器home下的名为Error的Action处理请求,{0}会替换为status code,并返回处理结果(IActionResult),用这种方式,地址栏的url为原始请求的路径,而不是 /Home/Error/xxx。
第二个方法是跳转到 /Home/Error/xxx 对应的页面,地址栏的url会显示为 /Home/Error/xxx
【aspnetcore】异常捕捉可用知识点的更多相关文章
- Oracle- 存储过程和异常捕捉
这段时间晚上有时候去打打球,回家看看电视剧,日子一天天过…….学了点ORACLE存储过程基础,作一下备注,以便日后需查阅. 创建无参存储过程 create procedure p_myPro1 is ...
- 基础知识《十》java 异常捕捉 ( try catch finally ) 你真的掌握了吗?
本文转载自 java 异常捕捉 ( try catch finally ) 你真的掌握了吗? 前言:java 中的异常处理机制你真的理解了吗?掌握了吗?catch 体里遇到 return 是怎么处理 ...
- Java多线程——<七>多线程的异常捕捉
一.概述 为什么要单独讲多线程的异常捕捉呢?先看个例子: public class ThreadException implements Runnable{ @Override public void ...
- php错误及异常捕捉
原文:php错误及异常捕捉 在实际开发中,错误及异常捕捉仅仅靠try{}catch()是远远不够的. 所以引用以下几中函数. a) set_error_handler 一般用于捕捉 E_NOTI ...
- android中全局异常捕捉
android中全局异常捕捉 只要写代码就会有bug,但是我们要想办法收集到客户的bug.有第三方bugly或者友盟等可以收集.但是,android原生就提供了有关收集异常的api,所以我们来学习一下 ...
- [iOS]异常捕捉
UncaughtExceptionHandler.h #import <Foundation/Foundation.h> NS_ASSUME_NONNULL_BEGIN @interfac ...
- Spring 全局异常捕捉
Spring全局异常捕捉类 注解@ControllerAdvice package com.sicdt.sicsign.web.bill.controller; import org.springfr ...
- 5.全局异常捕捉【从零开始学Spring Boot】
在一个项目中的异常我们我们都会统一进行处理的,那么如何进行统一进行处理呢? 新建一个类GlobalDefaultExceptionHandler, 在class注解上@ControllerAdvice ...
- springboot(四)拦截器和全局异常捕捉
github代码:https://github.com/showkawa/springBoot_2017/tree/master/spb-demo/spb-brian-query-service 全部 ...
随机推荐
- Codeforces Round #401 (Div. 2) D Cloud of Hashtags —— 字符串
题目链接:http://codeforces.com/contest/777/problem/D 题解: 题意:给出n行字符串,对其进行字典序剪辑.我自己的想法是正向剪辑的,即先对第一第二个字符串进行 ...
- Codeforces Round #398 (Div. 2) C. Garland —— DFS
题目链接:http://codeforces.com/contest/767/problem/C 题解:类似于提着一串葡萄,用剪刀剪两条藤,葡萄分成了三串.问怎样剪才能使三串葡萄的质量相等. 首先要做 ...
- runtime之方法的交换
工作中没怎么用到runtime的东西,所以一直没怎么看,现在开始拿起来. runtime之方法的交换: 都知道OC中有category可以对已知类进行扩展,但是假如工程中需要修改某类的原方法,若用ca ...
- 使用MongoDB.NET 2.2.4驱动版本对 Mongodb3.3数据库中GridFS增删改查
Program.cs代码如下: internal class Program { private static void Main(string[] args) { GridFSHelper help ...
- POJ 2970 The lazy programmer(贪心+单调优先队列)
A new web-design studio, called SMART (Simply Masters of ART), employs two people. The first one is ...
- 用python做自动化测试--Python实现远程性能监控
http://blog.csdn.net/powerccna/article/details/8044222 在性能测试中,监控被测试服务器的性能指标是个重要的工作,包括CPU/Memory/IO/N ...
- BZOJ_1044_[HAOI2008]木棍分割_二分答案+DP+单调队列
BZOJ_1044_[HAOI2008]木棍分割_二分答案+DP Description 有n根木棍, 第i根木棍的长度为Li,n根木棍依次连结了一起, 总共有n-1个连接处. 现在允许你最多砍断m个 ...
- LuoguP4861 按钮
传送门 这题一眼看上去要解\(k^x \equiv 1(mod\ m)\)的最小正整数解. 于是我打了一个扩展BSGS 这题这样做算的答案一直是0的.不过有另一个定理欧拉定理,\(k^{\varphi ...
- 光流 LK 金字塔
文章转载自:https://blog.csdn.net/sgfmby1994/article/details/68489944 光流是图像亮度的运动信息描述,这种运动模式指的是由一个观察者(比如摄像头 ...
- ZOJ3201(树形DP)
Tree of Tree Time Limit: 1 Second Memory Limit: 32768 KB You're given a tree with weights of ea ...