1

我只是想知道在验证和逻辑上抛出错误是否是一种最佳实践,如下所示。我在我的控制器中的 OnException 方法中捕获这些,并通过 Ajax 作为 JSON 将其发送回客户端。抛出这样的异常可以吗?

public void Update(EditTeacherModel model)
        {
            var entity = _teachersRepository.FindBy(model.Id);

            if(entity == null)
                throw new NatGeoNotFoundException("Teacher");


        }
4

3 回答 3

2

只要你有一个特殊的、干净的异常类型,我看不出这会是一个问题的原因。异常是跳出多个嵌套调用堆栈帧的便捷方式。

但是请注意,CLR 上的异常非常慢。

于 2012-04-19T00:21:01.323 回答
1

例外是昂贵的。我相信它们适用于您的应用程序的意外行为。

我认为,验证错误永远不应该抛出异常。

于 2012-04-19T07:13:47.473 回答
1

例外是有代价的。处理自定义/业务错误的最佳实践是返回正确的错误代码。

此处讨论异常处理最佳实践:http: //www.codeproject.com/Articles/9538/Exception-Handling-Best-Practices-in-NET

这里也讨论过:.NET Throwing Custom Exceptions

于 2012-04-19T00:25:46.293 回答