ASP.NET 全局异常处理

asp.net core添加全局异常处理及log4net、Nlog应用 0、目录  整体架构目录:ASP.NET Core分布式项目实战-目录 一、介绍   此篇文章将会介绍项目的全局异常收集以及采用log4net或者NLog记录。 众所周知,一旦自己的项目报错,如果没有进行处理都是显示不友好的,有得甚至直接爆出错误页面,看的也是很奇怪。  为了避免出现这样的错误以及在错误出现的时候可以进行收集错误,供维护人员进行bug修改,因此需要进行全局异常的收集。 ... 阅读详情

   在我们写程序时偶尔会由于疏忽导致有些异常没有进行处理。如果将异常详细信息提示给用户会带来不安全因素,如果不提示详细信息又会给用户报告异常带来麻烦。虽然可以通过配置customErrors mode来实现只有管理员可以查看错误,但发现问题的时间可能会比较长。通过全局异常处理就可以在异常发生时立即记录异常,或直接发送邮件向管理员报告,以在最快的速度发现并处理异常。

  要为ASP.NET应用程序添加全局异常处理主要是添加HttpApplication的Error事件的处理。这与在BeginRequest事件中进行URL重写方法类似。先建一个继承System.Web.IHttpModule的类。然后添加Init方法和ShowError方法。

  namespace Snowdream

  {

  public class HttpModule : System.Web.IHttpModule

  {

  public void Init(System.Web.HttpApplication context)

  {

  context.Error += new EventHandler(ShowError);

  }

  private void ShowError(object sender, EventArgs e)

  {

  //在这里进行异常处理

  }

  }

  }

  然后还需要配置web.config的httpModules使之生效.

  我现在比较喜欢的做法是将异常的详细信息记录在数据库中,然后返回一个编号,再将页面重定向到自己写的错误提示页,将这个编号提示给用户,用户如果要报告错误只需提供该错误编号,管理员就能在后台中找到错误的详细信息并进行修改。

  下面说2个我在做全局异常处理时碰到的问题及我的解决方案

  第一个是获取异常hResult,由于是私有属性不能直接访问,解决方法是通过(int)System.Runtime.InteropServices.Marshal.GetHRForException(exception)来获取

  第二个问题是记录了很多不是由于ASP.NET应用程序引发的错误,比如用户键入一个错误的URL,异常处理系统会记录一个“文件不存在。”的错误,而这些错误记录不仅不能真正反映出ASP.NET应用程序的异常反而会给管理员带来更多麻烦。我的解决方法是通过判断if(exception is System.Web.HttpException)来过滤这些HttpException.

 

http://tech.sina.com.cn/s/2008-07-07/1627722549.shtml

ASP.NET Core 全局异常处理和日志记录 文章目录添加自定义业务异常类添加全局异常过滤器像容器添加服务 添加自定义业务异常类 public class BusinessException : Exception { public BusinessException(){} public BusinessException(string message) : base(message) {} public BusinessException(string message, Exception innerException) : base(message, innerException) {} } 立即下载

相关推荐

不写代码,Cursor 10分钟开发1个APP!保姆级教程喂饭来了

做出第一个能运行的app,那种成就感真的很棒。虽然过程可能有点折腾,但只要耐心一点,问题都能解决。记住,遇到问题不要慌,现在有AI帮忙,大部分问题都能快速解决。重要的是迈出第一步,开始动手实践。你的第一个app可能很简单,但这是一个很好的开始。随着经验积累,你能做出的东西会越来越酷。现在就开始行动吧,说不定下个月你就能向朋友炫耀你自己做的app了!

chenhong007的博客 1548

ASP.NET Core开发必备:全局异常处理的实现与优化

在现代Web应用程序开发中,异常处理至关重要,能够确保系统的稳定性和用户体验。本文深入探讨了如何在ASP.NET Core中实现全局异常处理,通过自定义中间件捕获未处理的异常,并返回统一的错误响应。文章提供了详细的代码示例,演示了如何处理不同类型的异常,以及如何记录详细的日志信息。这种全局异常处理机制不仅简化了错误处理流程,还增强了应用程序的健壮性,是ASP.NET Core开发中不可或缺的技能。

qq_43535970的博客 1399

分子对接中的相互作用特征分析(目视筛查)

介绍分子对接的相互作用特征,以及如何通过这些特征进行目视筛查

recher_He1107的博客 5757

asp.net 全局异常处理

asp.net 给用户一个统一的处理异常的方法是如下     1。修改web.config           修改完成后代码如下               2。为全局响应,修改Global.asax           if (Server.GetLastError() is Exception)           {              Server.Tra

xiaobao6652的专栏 608

【UE 反射】反射的原理是什么?如何使用机制?

静态类型检查确保了类型的早期一致性和高效的代码执行,但减少了灵活性。动态类型检查提供了更大的灵活性,但增加了运行时的开销和潜在的错误。反射作为一种动态特性,无论是在静态类型语言还是动态类型语言中,都提供了强大的运行时类型操作能力,但也伴随着性能和安全性方面的权衡。通过理解这些联系,开发者可以在不同的编程语言和应用场景中选择适合的类型检查方式和反射机制,以实现所需的动态行为和灵活性,同时保证性能和安全性。

hhw_hhw的博客 6032

FastAPI + LLM 实战:5分钟搞定本地模型API服务部署(含避坑指南)

本文详细介绍了如何使用FastAPI和LLM(大语言模型)快速部署本地API服务,涵盖环境准备、模型集成、性能优化及避坑指南。通过实战示例,帮助开发者在5分钟内完成从零到生产的部署过程,提升AI应用开发效率。

weixin_29062963的博客 102

聊聊.NET Core处理全局异常有那些方法

比如上面的第二段代码,填入了“/Error”参数,表示当产生异常的时候,将定位到对应的路径,这里定位的页面就是“http://localhost:5001/Error”。如何我们没有使用过滤器捕获和处理异常,我们将得到Http状态码为500的内部错误,这种错误不方便定位问题,而且给客户端返回的信息也不够友好。上面的代码很简单,我们新建了一个自定义的异常过滤器,然后在OnExceptionAsync方法中定义自己的处理逻辑,报错之后依然让http返回状态码为200,并且将错误信息返回到客户端。

qq_41942413的博客 2491

骚操作,尝试使用Xilinx XVC协议,通过Jlink来下载调试Xilink zynq FPGA芯片

最近一直在玩zynq芯片,手头使用的Xilinx Platform USB Cable 下载线真是辣鸡,速度慢如蜗牛,每次下载bit文件或者烧写flash文件都要大半天,实在是难以忍受。逻辑分析仪看了下xilinx的下载线,速度只有6.25M,并且数据间隔非常大,不懂这线的开发者咋想的,这总线利用率真是低到爆了 上图为xilinx DLC 10下载线波形,惨不忍睹! 为了不浪费生命在下载等待时间上,我打算找找看有没有别的仿真调试选择。经过一番查找后发现Xilinx的仿真器好像选择不是很多,要么贵死要

听我瞎扯淡的博客 1万+

【nvidia-B200 生产环境】NVIDIA 570.124.06+Cuda12.8 Ubuntu22.04 nccl-test 一键部署脚本(免修改复制即用)

目录1. 初始化与日志记录2. 安装基础工具与配置更新3. NVIDIA 驱动安装 570.124.064. 安装 Mellanox OFED 24.10-2.1.8.05. 安装 CUDA 12.86. 安装 NCCL 和测试7. 配置 rc.local 和其他优化8. B200 单独步骤9. 最终测试与重启10. 完整生产脚本,复制即可直接使用总结 功能: 设置日志目录和日志文件路径。 使用 命令将标准输出和错误输出同时写入日志文件和终端。 记录脚本开始时间,并计算开始的秒数

jundao1997的专栏 2797

ESP32设备驱动-MLX90393磁场传感器驱动

MLX90393 磁场传感器可以在运行时重新编程为不同的模式和不同的设置。 该传感器使用 Melexis 专有的 Triaxis® 技术提供与沿 XYZ 轴感应的磁通密度成比例的 16 位输出,还提供温度输出信号。 这些数字值可通过 I2C 和 SPI 获得,其中 MLX90393 是总线上的从设备。

视觉与物联智能 2350

如何在ASP.Net Core MVC中实现全局异常处理

异常是应用程序中可能发生的运行时错误。 如果异常处理不当,正在执行的程序将终止。 本文讨论了如何在ASP.Net Core MVC中实现全局错误处理,以及相关的代码示例和用于说明概念的屏幕图像。 若要使用本文中的代码示例,您应该在系统中安装Visual Studio 2019。 如果您还没有副本,则可以在此处下载Visual Studio 2019 。 [SQL数据库正在获得NoSQL...

cxu0262的博客 944

【社招算法经验贴】算法社招记录

总的来说,也是收获了七七八八的offer,给的涨幅40~100%,职级有的可以对标到 p7(但阿里p7是真难a,a不动)。面了一圈下来,感觉大模型也在收缩hc。尤其是多模态相关hc。凭着上学期间做过相关视觉的work和paper,社招虽然能进面试,但是hc少得可怜,多模态已死慎入。还有大模型应用算法给的涨幅,跟搜广推的涨幅差别不大。真正能几百万往上的是基座pretrain/后训练/infra,但是全靠social和conn,hc极少。

Danger的博客 976

如何在ASP.Net Core Web API中实现全局异常处理

异常是应用程序中发生的运行时错误。 如果处理不当,将终止正在运行的程序。 我们如何防止这种情况发生? 我们可以使用全局异常处理程序来确保捕获所有未处理的异常。 为了在ASP.Net Core Web API中实现全局异常处理,我们可以利用内置的中间件UseExceptionHandler。 中间件是插入到请求处理管道中的软件组件,用于处理请求和响应。 [.Net路线图: .Net St...

cxu0262的博客 2872

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

谈谈ASP.NET全局异常处理

在我们写程序时偶尔会由于疏忽导致有些异常没有进行处理。如果将异常详细信息提示给用户会带来不安全因素,如果不提示详细信息又会给用户报告异常带来麻烦。 虽然可以通过配置customErrors mode来实现只有管理员可以查看错误,但发现问题的时间可能会比较长。通过全局异常处理就可以在异常发生时立即记录异常,或直接发送邮件向管理员报告,以在最快的速度发现并处理异常。   要为ASP.N

QQ289172257的专栏 784

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

ASP.NET全局异常处理浅析

在我们写程序时偶尔会由于疏忽导致有些异常没有进行处理。如果将异常详细信息提示给用户会带来不安全因素,如果不提示详细信息又会给用户报告异常带来麻烦。虽然可以通过配置customErrors mode来实现只有管理员可以查看错误,但发现问题的时间可能会比较长。通过全局异常处理就可以在异常发生时立即记录异常,或直接发送邮件向管理员报告,以在最快的速度发现并处理异常。 要为ASP.NET应用程序添加全局...

weixin_30695195的博客 99

ASP.NET Core API 的“最后一道防线”:全局异常处理

下面是一个标准、简洁的全局异常处理中间件示例。代码已做修正,保证类型声明正确。try// 生产环境不要返回 exception.Message 或 StackTrace这个中间件的逻辑很清晰:先执行后续管道,如果有异常抛出,统一记录日志,然后生成标准 JSON 响应。全局异常处理的本质,是把不可控的异常行为,转化为可控、可观测、可追踪的系统输出。无论是使用自定义中间件,还是让错误变得可管理,而不是让它在系统中随意蔓延。

软件开发学习交流 730

ASP.NET Core 中间件的使用(三):全局异常处理机制

ASP.NET Core 中间件的使用(三):全局异常处理机制前言创建项目创建全局异常过滤器依赖注入全局异常处理机制测试全局异常处理机制推荐资料参考文献 前言 我们经常听到“秒修复秒上线”,觉得很厉害的样子。 其实不然,这只是一个调侃而已,出现问题的方式很多(逻辑漏洞、代码异常、操作方式不正确等)。 我们今天来说代码异常问题怎么快速定位,减少不必要的时间浪费。 这就是今天的主题“添加全局异常处理机制”捕捉异常存储到数据库(mongodb、SqlServer、MySQL等)。 PS:输出txt的话不怎么友好,

熊泽-学习中的苦与乐 1195

ASP.NET MVC中全局异常处理

以前不知道从哪里找到的处理全局异常的,觉得蛮好用就记下来了。 1, 建立MyExecptionAttribute.cs类,写入如下代码: 源代码复制(IE有效)打印关于 using System;  using System.Collections.Generic;  using System.Linq;  using System.Web;  using System.

牛腩的专栏 3309

ASP.NET Core MVC 中设置全局异常处理方式

ASP.NET Core MVC 中设置全局异常处理方式

weixin_46246967的博客 139
上一篇: aps.net中在后台调用已有的javascript函数
下一篇: Http Module 介绍
mingzhecode
博客等级 码龄19年 13粉丝 42原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值