2011-06-27 14 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行目FTERを返すと呼ばなっている機能が...ある

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

常にfalseの場合、その条件はスキップされませんか? – Woot4Moo

+0

免責事項:私はVBプログラマではありません。 'LogException'関数にはどのようなコードが含まれていますか?その関数自体が例外をスローする可能性はありますか? –

+0

LogException関数は最後にfalseを返します。それはおそらくdbにエラーを記録した後です。しかし、dbに行くのではなく、コードをスキップして戻ります。 – GreazyNick

答えて

0

私のような状況を見れば、私はVBプログラマではない午前中:

do something when somecondition 

someconditionが真の場合、論理的にはsomethingと表示されます。したがって、あなたの例では、LogException(Exception ex)メソッドが常にfalseであるため、コードが正しく実行されています。これは、このインスタンスでsomethingを実行せずに実行を継続することを意味します。

+0

メソッドが誤っていると分かりますが、それをdbに渡してエラーをログに記録した後に、そのことを理解してください。この機能については上記を参照してください。 – GreazyNick

+0

データベースと実際にやりとりするコードを表示してください。まだ行っていません。 – Woot4Moo

関連する問題