编程语言
首页 > 编程语言> > c# – 处理ObjectDataSource异常的最佳方法是什么?

c# – 处理ObjectDataSource异常的最佳方法是什么?

作者:互联网

我在ASPX页面中有一个ObjectDataSource,它从业务逻辑类调用CRUD操作.当在这些操作期间发生异常时,我想告知用户错误并记录它们.但我想要在业务逻辑和表示层之间进行明确的分离.我知道Selected,Inserted,Updated,Deleted事件提供了ObjectDataSourceStatusEventArgs类型的参数,其中包含发生异常的属性“Exception”.

这些事件的处理程序是处理ObjectDataSource异常的最佳位置还是有更好的方法?事件参数链的Exception属性是否在操作期间发生了所有异常?

欢迎任何意见或建议,

谢谢,

卡伦

解决方法:

在Biz层对象执行的CRUD操作期间引发异常时,它应由Biz对象处理,但部分处理.这是因为您希望反馈到达表示层(并且您还想记录错误).因此,您可以:

一个.按原样重新抛出异常.这会将其冒充到您的表示层.

湾将名称 – 值数据对添加到异常的Data属性,然后重新抛出它.

C.将引发的异常包装到自定义异常类型中并抛出它.

然后,此异常将冒泡到您的ObjectDataSource,并通过Selected / Inserted / Deleted / Updated事件处理程序中的ObjectDataSourceStatusEventArgs.Exception属性提供.然后,您应该检查此属性是否为空.如果没有,ObjectDataSource会在TargetInvocationException包装器中包装任何异常(是的,复数!),因此您可能需要获取InnerException.

然后,您可以修改UI元素,以便向用户提供操作未成功完成的必要反馈.此外,您需要将ExceptionHandled属性设置为True,以防止异常冒泡到页面级别.

至于记录异常,个人而言,我会在两个层中记录错误 – Biz逻辑层和表示层.

标签:c,asp-net,objectdatasource
来源: https://codeday.me/bug/20190705/1386515.html