Exception Handling Application Block (5)详细解

Advanced Installer打包避坑指南:如何正确配置64位系统下的Java环境与注册表条件(以15.7版本为例) 本文详细解析了使用Advanced Installer 15.7版本在64位系统下打包Java应用时的常见问题与解决方案。重点介绍了注册表重定向机制、Java环境检测的双保险策略、环境变量设置的隐藏坑以及权限管理的进阶技巧,帮助开发者避免安装包在用户机器上无法运行的幽灵问题。 阅读详情

添加引用:

 获取Facade类

ExceptionManager ExManager = EnterpriseLibraryContainer.Current.GetInstance();

EnterpriseLibraryContainer位于Microsoft.Practices.EnterpriseLibrary.Common.Configuration;需要using下.

错误处理样板代码:

//==================

try{

 .....你的操作,可能会抛出错误

}catch(Exception ex){

   if (ExManager.HandleException(ex, "错误处理策略名称")) throw;

}

//===============

"错误处理策略名称",指你在错误处理模块配置指定的名称。

也可以使用 return ExceptionManager.Process(()=>MyMethod(18,"sss",...)) 进行调用

下面是Process的实现代码,跟上面的样板代码一样

代码
///
/// Executes the supplied delegate , and handles
/// any thrown exception according to the rules configured for .
///
/// Type of return value from .
/// The delegate to execute.
/// The value to return if an exception is thrown and the
/// exception policy swallows it instead of rethrowing.
/// The name of the policy to handle.
/// If no exception occurs, returns the result from executing . If
/// an exception occurs and the policy does not re-throw, returns .
public override TResult Process<TResult>(Func<TResult> action, TResult defaultResult, string policyName)
{
if(action == null) throw new ArgumentNullException("action");
if(policyName == null) throw new ArgumentNullException("policyName");

try
{
return action();
}
catch (Exception e)
{
if(HandleException(e, policyName))
{
throw;
}
}
return defaultResult;
}

 如果你电脑上有多个Ent Lib相关程序集(Release,Src,Hands On labs)请注意程序集的引用,默认情况下强类型程序集(PublicKeyToken!=null)是不允许引用未签名的程序集的,下面是可能的错误提示。

 //===============引用错误===============

创建 exceptionHandling 的配置节处理程序时出错: 未能加载文件或程序集“Microsoft.Practices.EnterpriseLibrary.ExceptionHandling, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”或它的某一个依赖项。找到的程序集清单定义与程序集引用不匹配。 (异常来自 HRESULT:0x80131040)

//=================

为避免这个问题请在程序中引用跟配置工具(EntLibConfig.exe)同目录的程序集

参考下图可知道,一个Policy,会捕获一组错误,而每个错误,多允许配置多个处理者(Handler)

这个处理者的动作包括替换,包装,记录等处理。

每个错误类型可以设置Post Handling action, 分别取None,NotifyRethrow,thorwNewExcetpion等三个枚举

指定的错误被捕获,HandleException会根据配置逐一执行Handle,接着就根据Post Handling action设置进行相应处理

这个设置需要配合上面的样板代码来实现功能,列举如下:

None:HandleException返回false,不会执行throw;故错误将就此“消失”

NotifyRethrow:HandleException返回true,throw将被执行,原始错误被抛出。

throwNewExcetpion:HandleException返回true,throw将被执行,但是错误类型被替换成Wrap Handler或ReplaceHandler指定的类型,错误抛出点(Stack trace)将会出现在Handle内部(企业库),当然Wrap Handler会将原始错误封装在innerException中。

注意throw;跟throw ex;是不同的 throw ex将会将原始错误发生点改成当前throw ex的位置。

汽车UDS诊断详解及Vector相关工具链使用说明——总述 1.什么是诊断 车辆在运行过程中,不可避免地会发生一些故障,为了确保行车安全,我们要求车上的ECU能够实时监测部件的运行状态,一旦发现异常情况,能通过点亮报警灯等方式提示驾驶员。但是,点亮报警灯只能告诉驾驶员车辆发生了故障,最多只能定位到故障ECU,比如ABS报警灯亮说明ABS系统出现故障,但具体是什么部件发生故障并不能通过报警灯显示出来。这时就需要ECU在本地存储一个与故障相对应的故障代码,在进行维修的时候,可以通过车上的OBD接口连接诊断仪,把这个存储的故障代码读取出来,从而进一步定位到更加具体的故障部 阅读详情

相关推荐

UE5实战:如何用Georeference插件搞定百度地图坐标转换(附完整代码)

本文详细解析了在UE5中使用Georeference插件实现百度地图坐标转换的全流程,包括BD-09到UE内部坐标的转换算法、UTM投影配置及性能优化技巧。通过完整代码示例和实战案例,帮助开发者高效解决数字孪生项目中的地理坐标转换难题。

weixin_30955617的博客 94

EntLib5.0 日志应用程序块(logging) 使用与配置

1.Logging Block的基础概念 EntLib 5.0 的日志组件单独使用比log4net,common.Logging等似乎要麻烦很多,而且要显式引用 Microsoft.Practices.EnterpriseLibrary.CommonMicrosoft.Practices.EnterpriseLibrary.LoggingMicrosoft.Practices.ServiceL...

weixin_33714884的博客 249

Silvaco TCAD仿真例库——肖特基二极管反向击穿特性(案例)

本文详细介绍了使用Silvaco TCAD仿真例库分析肖特基二极管反向击穿特性的完整流程。通过搭建带保护环的器件结构,配置关键物理模型,并执行反向偏压扫描,深入探讨了雪崩击穿机制、电场分布及设计参数(如漂移区浓度、保护环)对击穿电压的影响,为功率半导体设计与可靠性分析提供了实用的虚拟实验方法。

weixin_29165465的博客 388

微软企业库5.0学习笔记(六)创建并引用企业库对象

   通常,你主要使用下列2种方法之一来创建企业库对象实例。 1.使用Unity服务器定位器(Using the Unity Service Locator):这是最简单的方法,如果你的应用只有少量依赖,并且你不想使用现在的架构模式例如依赖注入,那么推荐使用这种方法。 它不需要初始化和设置。你只需配置你的应用使用企业库,然后调用服务定位器的方法来获取需要类型的企业库实例。  2.直接通过Uni

SUN 6276

Visual Studio 命令提示符工具区别与使用场景

Visual Studio会提供一系列命令提示符工具,这些工具应用在哪些场景呢?本文进行了相关介绍。

cicada15的博客 3493

鸿蒙OS开机动画背后的秘密:从代码到视觉的完整解析(附源码分析)

本文深入解析了鸿蒙OS开机动画的系统级实现原理。从bootanimation服务的启动配置、与Render Service的协同,到基于VSync信号的帧率同步与绘制流水线,结合OpenHarmony源码进行了逐行解读。文章揭示了其事件驱动的优雅退出机制,并探讨了视频支持、多屏适配等高级特性与定制化可能,为开发者理解鸿蒙图形子系统提供了硬核技术视角。

sony5的博客 971

ERROR [io.undertow.request] UT005023: Exception handling request 报错处理

ERROR [io.undertow.request] UT005023: Exception handling request 报错处理

weixin_45713361的博客 1万+

AI驱动Spine骨骼动画生成:从图像拆分到动画自动化的全流程解析

计算机视觉与生成式AI技术正深度赋能传统数字内容生产流程。在2D动画制作领域,骨骼动画技术通过模拟真实生物关节运动,实现了角色动画的高效制作与灵活控制。其核心原理在于将角色拆分为独立部件,通过骨骼层级关系驱动部件变换,结合关键帧插值算法生成流畅动作。这项技术的工程价值在于大幅降低动画制作门槛,提升内容生产效率,尤其适用于游戏开发、影视预演、广告设计等需要快速原型迭代的场景。本文聚焦于如何利用SIFT特征匹配、RANSAC几何验证等CV算法实现部件自动对位,并结合动画12原则的程序化实现,构建从单张角色立绘到

weixin_28696185的博客 1514

Microsoft Enterprise Library: Cache 模块

Microsoft Enterprise Library中的Cache模块能在多种场景中提供缓存功能:Web程序,桌面程序,WPF程序。我们可以配置Cache模块的缓存处理器,目前系统自带3个缓存处理器:In-Memory,Isolated Storage Cache Store 和 Data Cache Storage。 并且我们还能实现自己的缓存处理器,只需要实现接口 IBackingStor

GhostHouse 4221

【学习体会】Lighttools8.4.0:简单光学系统实例

添加球型光源(SphereSource)和表面接收器: 对光线模拟的参数进行设置: 光线追踪-模拟输入 要追踪的光线总数,决定模拟的准确度,总数越多,准确度越高,当然耗时更多 预览光线数量是模拟之后可以看到的示意光线(黑线),一般是100~1000,随意设置 点击,开始模拟: (模拟结果) 如果光线太多,则会出现,可以看到剩余时间 照度分析: 分析-照度显示-光栅图表 ...

LeonJin的博客 1万+

【人工智能】 WebDev Arena:实时AI Web开发竞赛的技术探索与价值

《AI编程竞赛推动Web开发技术创新》摘要:WebDev Arena作为聚焦Web开发领域的实时AI编程竞赛,通过标准化竞技环境检验AI模型在代码生成、问题解决等方面的能力。竞赛覆盖前端、后端等全流程开发环节,采用实时评分机制,推动AI对复杂Web需求的理解和多元技术栈适配。该赛事不仅促进AI编程技术创新,更为Web开发行业与AI技术融合搭建桥梁,有望提升开发效率、降低技术门槛。未来将拓展Web3.0等前沿技术主题,持续推动行业智能化发展。(150字)

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

EnterpriseLibrary数据访问 使用存储过程访问数据库

演示代码下载: http://dev.mjxy.cn/a-entlib-Access-the-database-using-stored-procedures.aspx 使用存储过程访问数据库   1.配置文件 view sourceprint? 01

ruiqi317的专栏 1468

大疆 2021 嵌入式笔试题

在深圳做嵌入式,大疆公司绝对是 Top 级别的,大疆的技术栈也很深。

qq_38769551的博客 2496

EntLib 3.1学习笔记(5) : Exception Handling Application Block

[en] http://msdn2.microsoft.com/en-us/library/aa480461.aspx[ch] http://www.microsoft.com/china/MSDN/library/enterprisedevelopment/softwaredev/dnpag2crypto1.mspx?mfr=true 1. 解决的问题:(1) 它支持整个应用程序体系结构层的异...

weixin_34001430的博客 934

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Microsoft Enterprise Library 5.0 系列(七) Exception Handling Application Block

使用企业库异常处理应用程序模块的优势: 它支持整个应用程序体系结构层的异常处理,而不仅限于服务接口的界限。 它使得异常处理策略可以在管理层定义和维护,以便决策人员(可能是系统管理员和开发人员)可以定义如何处理异常。他们可以维护和修改控制异常处理的规则集,而无需更改块的应用程序代码。 它提供了常用的异常处理功能,例如记录异常信息的功能、通过将原始异常替 换为其他异常来隐藏敏感信息的功能,以及通

城市蜗牛 1974

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Microsoft Enterprise Library 5.0 系列教程(七) Exception Handling Application Block

使用企业库异常处理应用程序模块的优势: 它支持整个应用程序体系结构层的异常处理,而不仅限于服务接口的界限。 它使得异常处理策略可以在管理层定义和维护,以便决策人员(可能是系统管理员和开发人员)可以定义如何处理异常。他们可以维护和修改控制异常处理的规则集,而无需更改块的应用程序代码。 它提供了常用的异常处理功能,例如记录异常信息的功能、通过将原始异常替换为其他异常来隐藏敏感信息的功能,以及通过

hyy829119的专栏 1153

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

黄聪:Microsoft Enterprise Library 5.0 系列教程(七) Exception Handling Application Block

使用企业库异常处理应用程序模块的优势: 它支持整个应用程序体系结构层的异常处理,而不仅限于服务接口的界限。  它使得异常处理策略可以在管理层定义和维护,以便决策人员(可能是系统管理员和开发人员)可以定义如何处理异常。他们可以维护和修改控制异常处理的规则集,而无需更改块的应用程序代码。  它提供了常用的异常处理功能,例如记录异常信息的功能、通过将原始异常替换为其他异常来隐藏敏感信息的功...

weixin_34206899的博客 161
上一篇: Enterprise Library Policy Injection Application Block(5.0) 函数调用链整理
下一篇: 最短路径---Dijkstra备忘
WDFrog
博客等级 码龄21年 7粉丝 132原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值