2011-06-27 165 views
0

我有一個ASP.NET 2010應用程序。基本上,任何我有理由懷疑錯誤的地方,我都會採用以下技術來嘗試記錄它。爲什麼我不能記錄錯誤?

Try 

'Code causing error here 

Catch ex As Exception When LogException(ex) 
Catch ex As Exception 'Here is where I would put a more specific error 

End Try 

LogException函數總是返回false。因此,應該捕獲並記錄每個異常,然後控制返回到塊中的下一個異常。真正發生的是LogException函數被調用,但在它可以執行任何操作之前,控制會直接返回到上面塊中的下一個異常。爲什麼?

編輯...這裏是越來越調用,但返回壓腳提升1號線的功能...

Public Function LogException(ByVal ex As Exception) As Boolean 
     Dim oExceptionMgt As New ExceptionMgt 'This line runs 
     oExceptionMgt.LogException(ex) 'This line should go to db to log error. 
Return False 
    End Function 
+0

如果它總是假,它會不會跳過這種情況? – Woot4Moo

+0

聲明:我不是一個VB程序員。 LogException函數包含哪些代碼?該函數本身是否可能引發異常? –

+0

LogException函數最後返回false。即假設後,它將錯誤記錄到數據庫。但是,而不是去分貝,它跳過代碼,只是返回。 – GreazyNick

回答

0

雖然我不是一個VB程序員,如果我看到一個條件,如:

do something when somecondition 

從邏輯上說只有在somecondition爲真時something。因此,在您的示例中,代碼正確執行,因爲您的方法始終爲false。這意味着在這種情況下不會執行something並繼續執行。

+0

請理解該方法確實reutnr錯誤,假如你說,但後它應該去db並記錄錯誤。請參閱上面的這個函數,我現在將添加。 – GreazyNick

+0

請顯示實際與數據庫交互的代碼,但您尚未這樣做。 – Woot4Moo

相關問題