处理sql异常的策略应该是什么?
本文关键字:是什么 策略 sql 异常 处理 | 更新日期: 2023-09-27 18:11:26
我有一个多层应用程序。DAL -> BAL ->业务网关->UI。如果在DAL中出现外键或唯一约束异常,我们应该如何识别这是哪个异常以及应该向用户显示什么错误消息。我们应该使用错误编号来识别这个吗?
第二个问题:我们应该如何向UI提示这个错误。我们正在考虑将此异常抛出给BAL, BAL将封装错误并向UI返回响应(不是异常)。这是正确的方法吗?
DAL异常应该由BAL处理并重新抛出(作为自定义异常)。你应该序列化并通过你正在使用的通信通道发送到你的UI。
你不需要向用户显示准确的错误或错误编号,因为这会形成糟糕的用户体验。你可以告诉他们你不能在db中执行操作。您可以在日志文件或windows事件日志中记录详细信息。
EDIT: SqlException有错误代码,您可以在DAL中检查,然后根据该代码抛出特定的异常。您的DAL抽象出SQL Server作为后端存储,因此SqlExceptions不应该泄漏到您的DAL之外。所以在DAL中检查ErrorCode并抛出一个特定的异常