抛出异常与捕获异常

时间:2014-10-14 16:23:34

标签: c# business-rules

我正在为公司的其中一个应用程序重新编写业务层。目前,业务层将直接与Web客户端连接。但在将来,它将使用服务接口进行封装,并将由同一个Web客户端使用。

我的问题是,当业务层中出现验证异常或其他异常时,是否可以抛出自定义异常,或者使用表示错误的自定义对象(如ValidationError等)会更好吗?抛出异常与返回对象相比更昂贵吗?

2 个答案:

答案 0 :(得分:0)

今天最受欢迎的想法是将错误抛向应用层。我想这个想法是为了解释出错并告诉用户的内容比应用程序的内容更明确。

有些人在任何地方都会发现错误,然后随意丢弃它们,这为开发人员留下了可追踪文档的痕迹。

另一个有趣的观点是,如果开发人员使所有错误消息都包含唯一标识符,那么他们很容易调试,因为他们可以通过查找该数字来查明代码。

答案 1 :(得分:0)

抛出异常比返回对象更昂贵。例外情况仅应用于意外情况。验证用户输入时的错误不是意外的,不应该导致抛出异常。