.NET中的默认异常响应代码

时间:2015-06-09 00:48:00

标签: c# asp.net

我不确定我是否在这里提出正确的问题,但.NET是否有针对特定错误的默认响应代码?如果是这样,当它在应用程序代码中未处理时,它会为并发数据库更新异常返回什么响应代码?

2 个答案:

答案 0 :(得分:1)

我想说.Net没有默认响应代码。在某些情况下会抛出许多类型的异常。例如NullReferenceException。

数据库更新异常返回的异常将取决于用于访问数据的库。例如,我认为实体框架会抛出DbUpdateConcurrencyException。 Linq-To-Sql库抛出ChangeConflictException。

如果您没有使用ORM,那么您可能会得到一个SqlException,其号码与底层提供商(例如Sql Server)结果代码相关。

这有帮助吗?

答案 1 :(得分:1)

"响应代码"每个.NET异常都是抛出它的代码的责任。

客户端代码有两种主要方式可以传达异常"代码"客户代码:

根据您正在处理的异常类型,您可以查看HRESULT值(用于在托管代码和非托管代码之间传递异常详细信息),或者使用.NET强加的异常处理模式,要求全部专门的异常继承自Exception(即按顺序捕获异常,从大多数专门的异常开始。)

例如,在数据库异常的情况下,更专业的异常类型可以提供额外的"代码"信息 - 与SqlException.Number一样,可能映射到基础SQL服务器错误代码 - 默认代码来自此表:

use master
select * from sysmessages

网上有资源试图整合所有已知的专门异常类型,例如:https://mikevallotton.wordpress.com/2009/07/08/net-exceptions-all-of-them/