异常处理需要恢复调用函数

时间:2014-01-28 11:03:13

标签: vb.net exception-handling

在VB.Net中,

我有函数x()&函数y()。 x()调用y()。

  • 由于x()正在进行一些关键操作,因此需要在任何时候完成 成本(我在这里处理与金钱有关的交易)。
  • 但是在y()中,我正在调用一些第三方Web服务来获取 其他信息。
  • 即使y()失败,我也需要继续使用x()。
  • 我需要使用从x()中的y()返回的对象。
  • 如果y()遇到异常,如果有异常应该返回什么?
  • 我希望它返回x,无论我从y()返回null。

我如何构建y()代码?

1 个答案:

答案 0 :(得分:2)

您只需在Y中使用Try Catch Block构建代码,如下所示:

Public Sub X()
    Try
         ### Do some crucial operation here
         Dim obj = Y() 'call Y
         If Not obj Is Nothing Then
             'do some operation on obj if the call to Y succeeded
         End If
         ### Do more crucial operation here - this runs even if Y throws an exception
    Catch ex As Exception
        'x failed for some reason - log the ex.StackTrace and ex.Message
    End Try
End Sub

Public Function Y() As Object
    Try
        Dim obj As New Object
        'do y here
        Return obj
    Catch ex As Exception
        'ignore any error that occurs calling y
        Return Nothing
    End Try
End Sub