【问题标题】:VB.net throwing error to parentVB.net 向父级抛出错误
【发布时间】:2012-02-27 12:28:28
【问题描述】:

我有一个关于如何正确处理错误的问题。我正在开发一个三层应用程序。如果在数据层上创建了错误,我想将错误传递给业务层并在那里进行处理。实现这一目标的最佳方法是什么?我正在使用 .net 2.0 和 Visual Studio 2005。

感谢您的建议 杰森

【问题讨论】:

    标签: asp.net vb.net


    【解决方案1】:

    在您的业务层中使用 Try...Catch 在 Try 中调用您的数据层。

    Try
      'call data-layer
    Catch ex As Exception
      'deal with exception / log
    End Try
    

    如果您仍想在数据层中使用 Try...Catch,则需要在 Catch 中使用 Throw(以保留堆栈跟踪)或 Throw ex,否则请勿在数据层中使用 Try...Catch完全没有。

    Try
      data = dataLayer.GetData()
    Catch ex As Exception
      Throw
    End Try
    

    【讨论】:

    • 注意:使用Throw 而不是Throw ex 来保留堆栈跟踪。 stackoverflow.com/questions/730250/… 否则,您不会看到异常实际上是在 DoWork 中引发的,甚至是在从 DoWork 调用的“更深层”方法中。
    • 更改了我的答案以反映此建议。谢谢。
    • 谢谢!我会实现这个
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-01
    • 1970-01-01
    • 2014-07-02
    相关资源
    最近更新 更多