Web API Global Error Handl

Cadence PCB SI仿真实战:如何手动添加VIA过孔模型提升板级链路精度 本文详细介绍了在Cadence PCB SI仿真中如何手动添加VIA过孔模型以提升DDR4/5设计的精度。通过参数化建模和三维全波建模技术,工程师可以有效解决高速设计中的信号完整性问题,显著降低仿真误差。文章还提供了实战案例和常见问题解决方案,帮助优化板级链路性能。 阅读详情

这个玩意可以解决项目已经开始了但是没写try catch;临时一个个加又很麻烦。适用于web api 2


1. override Handle 和 logger

using System;
using System.Net.Http;
using System.Web;
using System.Web.Http.ExceptionHandling;
using  ClientPortal.Common.Logging;

namespace ClientPortal.Api.Extensions

{
     class CustomExceptionLogger:ExceptionLogger
    {
        private const string HttpContextBaseKey = "MS_HttpContext";
        public override void Log(ExceptionLoggerContext context)
        {
            // Retrieve the current HttpContext instance for this request.
            HttpContext httpContext = GetHttpContext(context.Request);

            if (httpContext == null)
            {
                return;
            }

            if (context.Exception.TargetSite != null)
            {
                LogHelper2.Log.Error(context.Exception.TargetSite.ReflectedType.FullName, context.Exception.TargetSite.Name,context.Exception.ToString());
            }
            
            // Wrap the exception in an HttpUnhandledException so that ELMAH can capture the original error page.
            //Exception exceptionToRaise = new HttpUnhandledException(message: null, innerException: context.Exception);

            // Send the exception to ELMAH (for logging, mailing, filtering, etc.).
            //ErrorSignal signal = ErrorSignal.FromContext(httpContext);
            //  signal.Raise(exceptionToRaise, httpContext);

        }

        private static HttpContext GetHttpContext(HttpRequestMessage request)
        {
            HttpContextBase contextBase = GetHttpContextBase(request);

            if (contextBase == null)
            {
                return null;
            }

            return ToHttpContext(contextBase);
        }

        private static HttpContextBase GetHttpContextBase(HttpRequestMessage request)
        {
            if (request == null)
            {
                return null;
            }

            object value;

            if (!request.Properties.TryGetValue(HttpContextBaseKey, out value))
            {
                return null;
            }

            return value as HttpContextBase;
        }

        private static HttpContext ToHttpContext(HttpContextBase contextBase)
        {
            return contextBase.ApplicationInstance.Context;
        }
    }
}
下面这个似乎可以不用。 目前还没测试
using System.Text;
using System.Web.Http.ExceptionHandling;


namespace ClientPortal.Api.Extensions
{
     class CustomExceptionHandler: ExceptionHandler
    {
        public override void Handle(ExceptionHandlerContext context)
        {
            string a = "";
        }
    }
}


然后把在WebApiConfig里面写

            // There can be multiple exception loggers. (By default, no exception loggers are registered.)
           config.Services.Add(typeof(IExceptionLogger), new CustomExceptionLogger());

            // There must be exactly one exception handler. (There is a default one that may be replaced.)
            // To make this sample easier to run in a browser, replace the default exception handler with one that sends
            // back text/plain content for all errors.
           config.Services.Replace(typeof(IExceptionHandler), new Extensions.CustomExceptionHandler());

到此为止所有没有写try catch的函数,只要出现http exception都会被如下语句记录


LogHelper2.Log.Error(context.Exception.TargetSite.ReflectedType.FullName, context.Exception.TargetSite.Name,context.Exception.ToString());


logHelper2 是自己写的exception 处理,可以录入到一个文件或者数据库



Sony SLVS-EC接口实战:如何用Xilinx K7 FPGA接收IMX421传感器数据(附电气特性匹配技巧) 本文详细介绍了在Xilinx Kintex-7 FPGA平台上实现Sony IMX421图像传感器SLVS-EC接口数据接收的完整实战方案。内容涵盖从硬件选型、PCB布局的电气特性匹配技巧,到FPGA内部GTX收发器配置、多通道绑定以及SLVS-EC协议数据解析与图像重组的关键步骤,为高速视觉系统开发提供了宝贵的调试经验和系统集成指导。 阅读详情

相关推荐

逆向工程实战:如何用Frida和IDA破解AppleAccount的X-MMe-Nas-Qualify签名机制

本文通过逆向工程实战,详细解析了如何利用Frida动态Hook和IDA静态分析技术,破解AppleAccount服务中关键的X-MMe-Nas-Qualify签名机制。文章从环境搭建、动态追踪NSMutableURLRequest的签名注入点开始,逐步深入到AuthKit框架的静态剖析与算法还原,最终实现独立的签名生成,为安全研究和自动化测试提供了完整的技术路径。

bush的博客 695

ASP.NET自定义错误页面

 2009年11月23日 星期一 10:21ASP.NET 提供三种用于在出现错误时捕获和响应错误的主要方法:Page_Error 事件、Application_Error 事件以及应用程序配置文件 (Web.config)。 如果您不调用 Server.ClearError 或者捕获 Page_Error 或 Application_Error 事件中的错

坚持,才是力量.老实做人,踏实做事. 2万+

实战分享:如何用Jetson Nano+HM30图传搭建低空YOLOv5检测系统(附VNC避坑指南)

本文详细介绍了如何利用Jetson Nano和HM30图传搭建低空YOLOv5检测系统,重点解决了无人机应用中的硬件连接和VNC延迟优化问题。通过对比WiFi直连与图传方案的优劣,提供了网络配置、VNC优化及YOLOv5模型加速的实战技巧,帮助开发者实现高效稳定的低空目标检测系统。

weixin_29174385的博客 110

NET MVC全局异常处理(一) 【转载】网站遭遇DDoS攻击怎么办 使用 HttpRequester 更方便的发起 HTTP 请求 C#文件流。 Url的Base64编码以及解码 C#计...

NET MVC全局异常处理(一) 目录 .NET MVC全局异常处理 IIS配置 静态错误页配置 .NET错误页配置 程序设置 全局异常配置 .NET MVC全局异常处理 一直知道有.NET有相关的配置,但没有实际做过,以为改下设定就可以,结果实际使用的时候还是遇到不少问题,所以要记录一下。 I...

693

Canoe Panel基础功能介绍

CANoe Panel 是 Vector CANoe 软件中用于设计图形化操作界面的功能模块。用户可以在面板上添加合适的控件,实时的改变信号或者变量的值

m0_56208280的博客 1949

从GitHub到海浪模拟:手把手教你配置WAVEWATCHⅢ 6.07.0的完整开发与测试环境

本文详细指导如何在Ubuntu系统中配置WAVEWATCHⅢ 6.07.0的开发与测试环境,涵盖虚拟机设置、依赖安装、源码编译及案例验证的全流程。通过步骤化教程,帮助科研人员快速搭建高效的海浪模拟平台,提升海洋数值模拟的研究效率。

weixin_42568801的博客 322

Global Error Handling in ASP.NET Web API 2(webapi2 中的全局异常处理)

  目前,在Web API中没有简单的方法来记录或处理全局异常(webapi1中)。一些未处理的异常可以通过exception filters进行处理,但是有许多情况exception filters无法处理。例如:   1.从控制器构造函数中抛出的异常。   2.从message handlers中抛出的异常。   3.路由过程中抛出的异常。   4.响应内容序列化过程中引发的异常。...

weixin_34163553的博客 687

使用VScode编译AMI代码

我现在了解到的和拿到的code,都是基于AMI的code,一般的编译AMI都需要搭配使用AMI的编译环境Veb,而Veb用到现在,一直都觉得有点卡顿,浏览代码的体验也比VScode差很多。在这之前还要,考虑设置TOOLS_DIR和EWKE_DIR的环境变量,因为在Veb中是可以通过设置自动设置的,但是VScode里面没用设置环境变量的选项。这里可以看出,Veb工具栏中的Build和Rebuild All的命令对应这里的make和make rebuild,也就是说Veb是调用此命令进行编译的。

Dodijd的博客 1880

WebApi 全局变量 Global.asax 文件

using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Web; using System.Web.Http; using System.Web.Mvc; using System.Web.Optimization; usi

a123_z的博客 7633

Python在Genesis2000 CAM软件中的编程应用

Genesis2000是一款功能强大的计算机辅助制造(CAM)软件,它提供了广泛的功能和工具,用于帮助制造商进行CAD(计算机辅助设计)到CAM的转换。在Genesis2000中,我们可以利用Python的灵活性和功能来扩展软件的自定义能力,并通过编写脚本来自动化各种制造任务。例如,假设我们需要在Genesis2000中添加一个新的操作,用于自动计算零部件的重量。我们可以编写一个Python脚本,通过遍历模型的几何数据并应用相关的计算公式,来实现这个功能。

PixelEnigma的博客 2423

深度揭秘!用 DeepSeek 打造超智能电商客服系统全流程

摘要:本文围绕使用 DeepSeek 开发电商智能客服展开详细教程。先介绍前期准备,包括了解 DeepSeek、获取 API 权限与搭建开发环境。接着阐述数据收集预处理,结合电商业务逻辑实现商品与订单信息查询。还提及优化性能的方法,如模型微调、多轮对话管理和错误处理。然后说明了基于 Web 和云平台的部署方案。最后强调持续监控和改进的重要性,通过设置监控指标、收集分析用户反馈来优化系统,助力开发者打造高效电商智能客服。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 7812

asp.net core MVC 过滤器之ExceptionFilter过滤器(一)

简介 异常过滤器,顾名思义,就是当程序发生异常时所使用的过滤器。用于在系统出现未捕获异常时的处理。 实现一个自定义异常过滤器 自定义一个异常过滤器需要实现IExceptionFilter接口 public class HttpGlobalExceptionFilter : IExceptionFilter     {         public void OnException(Ex

dotNET跨平台 3519

【人工智能】Claude服务访问受限报错的技术分析与解决方案

在使用Claude系列大模型服务的过程中,部分用户会遇到服务不可用的标准化拦截提示,导致无法正常访问模型核心能力。本文针对该类报错进行完整技术拆解,明确报错根因与底层校验逻辑,并分场景提供合规、可落地的排查与解决方案,同时规避相关使用风险。

奶爸的编程之路,也就一周冷个三天 2671

C#进阶系列——WebApi 异常处理解决方案

C#进阶系列——WebApi 异常处理解决方案 一、使用异常筛选器捕获所有异常 我们知道,一般情况下,WebApi作为服务使用,每次客户端发送http请求到我们的WebApi服务里面,服务端得到结果输出response到客户端。这个过程中,一旦服务端发生异常,会统一向客户端返回500的错误。 [HttpGet] public str

hppgjx的博客 1357

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

webapi 修改global.asax.cs 开启session支持和返回具体错误信息

public class WebApiApplication : System.Web.HttpApplication { protected void Application_Start() { AreaRegistration.RegisterAllAreas(); GlobalConfiguration...

qq_41330451的博客 595

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

MVC里面两个dropdownlist联动

MVC view里面有两个dropdownlist分别邦定到两个属性 View里面 @Html.LabelFor(m => m.Name, new { @class = "form-label" }) @Html.DropDownListFor(m => m.Id, (IEnumerable)ViewData[

clear_zero的专栏 3953

sql server删除Hierarchy的一支

写下来以后便于查找 SQL server 2008R2, 如果一个表格是Hierarchy的有三列,如下 ID, Name,ParentID 1    A          NULL 2    B           1 3    C           1 4    D           2 5    E           4 如果我想删除(查询)B以及以下所

clear_zero的专栏 2694

Python Selenium 自动测试网页

自动测试脚本,多用于regression testing 需要安装Python 和 Selenium http://selenium-python.readthedocs.io/ Selenium 默认浏览器是firefox, 如果用Chrome或者IE 需要自己下 web driver IE http://stackoverflow.com/questions/24925095/seleni

clear_zero的专栏 2397

在Bootstrap的Modal form里面添加PartialView

@using (Html.BeginForm("DisplaySites", "DisplayDSP", FormMethod.Post)) { @(Html.Kendo().Grid(Model.SiteList) // Bind the grid to the Model property of the view

clear_zero的专栏 2306

Assign directory/file access rights to 'everyone'

在win7 UAC下如果user1创建了一个文件,那么当user2登陆后默认对这个文件是无权编辑的。 解决方案就是user1在创建的时候把这个文件的权限给everyone;或者关掉UAC,把制定文件夹或者文件的权利给everyone 代码如下 引用 using System.Security.AccessControl; using System.Security.Prin

clear_zero的专栏 2240

Kendo Grid MVC Hierarchy with Aggregate

工作上用到,是用kendo grid显示两个有关联的表。母表可以编辑,子表显示一个数目的合计. Kendo自身的文档不全,这个是各种拼凑出来的。 注意 view 邦定model的时候用直接用Ienumable的话,当编辑完毕送回到controller的时候model是null. 需要把母表的list放到一个model里面如果需要从javascript上面Expand

clear_zero的专栏 2109

Jquery Deferred objects

以前写的,后来想不起来了。写在这里以便查找 Deferred objects对我来说就是如果页面里面有两个ajax call对数据库进行操作。比如说两个grid 读取,Ajax执行异步操作的时候,页面显示loading...; 当两个操作都完成时,loading 隐藏 以下是代码片断 $(document).ready(function(e) {

clear_zero的专栏 1489

Angularjs table sort filter

写着怕以后用的着的时候望了

clear_zero的专栏 997

webapi 基于bitmask的

主要讨论web api实现基于bitmask的认证; 这里说的是有没有权利访问一个web method 这个应该可以实现,代码片段来自网络 这个方法适用于权限不多的情况,如果太多了需要改良 1. DB: id 是按照bit来设置的而不是连续数字序列。 1,2,4,8, 16,32..... Role PermissionId Name 1 1

clear_zero的专栏 843

javascript sort IE vs Chrome and Edge

在Chrome和Edge里面,如下代码运行没有问题 arrayA.sort((a, b) =>(a.index > b.index) ? 1 : -1); 但是IE11里面并不支持 =>,只能如下代码 arrayA.sort(function (a, b) { return a.index - b...

clear_zero的专栏 493
上一篇: Angularjs table sort filter
下一篇: webapi 基于bitmask的
clear_zero
博客等级 码龄24年 2426粉丝 36原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值