2013-01-18 72 views
0

在下面的代码我有嵌套函数/ sub如果出现异常,请停止并转到页面加载?

是什么意思发生的是,如果有异常则停止无论代码和异常添加到一个全局变量,转到下面“如果线路有是一个例外,然后去这里'

我该如何做到这一点,因为我下面的代码不工作?这肯定很容易?

下面如果例外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 

回答

2

我在你的意思是“不工作”什么猜测,但我认为在拨打Outer()之后你不会执行代码?

只是将它包裹在Try Catch中,但是如果您想要反驳,请不要重新抛出异常。

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
    Try 
     Outer() 
    Catch ex As Exception 
     'do something with it here if you want, or not. 
    End Try 

    'Do more here. 
End Sub 
+1

如果我猜错了,请不要为此付诸行动,如果是这样,我会删除答案。 – hometoast

+1

他在innerB中做的第一件事就是抛出异常,当然它会留下innerb而没有其他东西发生 – PaShKa

+1

错过了 - 希望它只是测试的剩余部分“当我在这里抛出异常时会发生什么” – hometoast