以下のコードでは、入れ子関数/サブルーチンがあります
発生するのは、例外がある場合はコードがある場所で停止し、グローバル変数に例外を追加して、「例外があった場合はここに移動する」という行に移動することです。
以下のコードが機能しないので、どうすればよいですか?確かにこれは簡単でなければなりませんか?
以下では、例外がInner_B()で発生した場合、それはInner_A()でキャッチされますが、乳首はInner_B()でキャッチされます
Partial Class _Default
Inherits System.Web.UI.Page
Dim textOutput As String = String.Empty
Dim strErrorMesssage As String = String.Empty
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Outer()
'If there was an exception then go here'
End Sub
Private Function Outer() As String
Try
Inner_A()
Catch ex As Exception
strErrorMesssage = ex.Message
Throw
End Try
textOutput &= " Function Outer"
Return " Function Outer"
End Function
Private Function Inner_A() As String
Try
Inner_B()
Catch ex As Exception
strErrorMesssage = ex.Message & " Inner_A() "
Throw
End Try
textOutput &= " Function Inner_A"
Return " Function Inner_A"
End Function
Private Sub Inner_B()
Throw New ApplicationException("Exception Occured")
Try
Inner_C()
Catch ex As Exception
strErrorMesssage = ex.Message & " Inner_B() "
Throw
End Try
textOutput &= " Sub Inner_B"
End Sub
Private Function Inner_C() As String
Try
Catch ex As Exception
strErrorMesssage = ex.Message & " Inner_C() "
Throw
End Try
textOutput &= " Function Inner_C"
Return "Inner_C"
End Function
End Class