.NET验证最佳实践的异常处理

时间:2012-04-18 23:15:34

标签: .net asp.net-mvc-3 exception-handling

我只是想知道如果在下面的验证和逻辑上抛出错误是最佳做法。我在我的控制器中的OnException方法中捕获它们,并通过Ajax将其作为JSON发送回客户端。抛出这样的例外吗?

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

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


        }

3 个答案:

答案 0 :(得分:2)

只要你有一个特殊的,干净的异常类型,我就没有看到为什么这会出现问题的原因。异常是逐步退出多个嵌套调用堆栈帧的便捷方法。

请注意,CLR上的非常速度异常。

答案 1 :(得分:1)

例外情况有费用。处理自定义/业务错误的最佳做法是返回正确的错误代码。

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

此处也讨论过:.NET Throwing Custom Exceptions

答案 2 :(得分:1)

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

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