【问题标题】:Handle SQL exceptions in Entity Framework if a stored procedure in SQL Server already handles them?如果 SQL Server 中的存储过程已经处理了实体框架中的 SQL 异常?
【发布时间】:2021-11-08 05:20:29
【问题描述】:

我正在使用带有 EF Core 的 ASP.NET RESTful API 与 SQL Server 数据库进行通信。我想执行一些处理异常的存储过程。我是否还需要包装我的 C# 代码以在 try catch 块中调用存储过程?

如果我不将代码包装在 try catch 块中,即使我的存储过程处理了异常,C# 会抛出异常吗?

【问题讨论】:

  • 如果 sql server 层确实处理了异常,这意味着它应该返回一些有意义的东西,以便您的代码能够记录/重新抛出/通知用户。例如,如果结果为 -1,则抛出新的 MyCustomDataException
  • 任何时候您的应用程序与另一个进程交互时,您都应该预料到通信失败并根据需要处理异常。许多事情都可能导致您的应用程序接收到完全超出过程逻辑及其捕获异常能力的异常。您最后一个问题的答案很简单 - 尝试一下,看看会发生什么。

标签: c# asp.net sql-server tsql entity-framework-core


【解决方案1】:

当您的存储过程处理 try catch 块时,您的存储过程将永远不会抛出错误,因为它会陷入 proc 中。所以不需要从c#中包装try catch块

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多