我只是想知道如果在下面的验证和逻辑上抛出错误是最佳做法。我在我的控制器中的OnException方法中捕获它们,并通过Ajax将其作为JSON发送回客户端。抛出这样的例外吗?
public void Update(EditTeacherModel model)
{
var entity = _teachersRepository.FindBy(model.Id);
if(entity == null)
throw new NatGeoNotFoundException("Teacher");
}
答案 0 :(得分:2)
只要你有一个特殊的,干净的异常类型,我就没有看到为什么这会出现问题的原因。异常是逐步退出多个嵌套调用堆栈帧的便捷方法。
请注意,CLR上的非常速度异常。
答案 1 :(得分:1)
例外情况有费用。处理自定义/业务错误的最佳做法是返回正确的错误代码。
此处讨论了异常处理最佳做法:http://www.codeproject.com/Articles/9538/Exception-Handling-Best-Practices-in-NET
答案 2 :(得分:1)
例外是昂贵的。我相信它们是出于您的应用程序的意外行为。
我认为验证错误不应该抛出异常。