这不是真正的最佳实践建议的问题。我正在编写一个ASP.Net MVC应用程序,在我的DAL中我正在使用NHibernate,但是如果在DAL中抛出异常,你会怎么做?
您是否在DAL中捕获异常,记录错误然后重新抛出异常? 你甚至不试图捕获exeptions并使用global.asax中的Application_Error()方法作为通用catch all吗? 你是否捕获异常日志并将bool返回给控制器指示成功或失败,或者你做了一些完全不同的事情?
从这导致如何处理通知用户?您是否显示通用的“错误发布 - 请再试一次”类型页面,或者您是否显示更多信息错误?
答案 0 :(得分:1)
这正是“依赖”问题之一。这就是我的工作:
现在专门针对NHibernate - 如果NH抛出异常,建议你关闭并丢弃当前活动的ISession并且只是失败。因为会话可能处于未知/不一致状态并试图复活它可能弊大于利。
显然取决于您的应用的规模和类型以及各种系统/程序员/等的数量。你真的可以自己处理日志记录。