私は早急に質問します。私が現在取り組んでいるシステムでは、Web例外を処理する独自のカスタムプロバイダを用意しています。このプロバイダについて私が気に入っていることの1つは、例外をスローするメソッドのパラメータ値を追加できることです。コードは次のようになります。より多くの人々がコードベースをタッチしスローエラーを更新するのを忘れて、この方法の場合リフレクションを使用してエラーの詳細を取得する
Public Sub Dosomething(ByVal Parameter1 As String, ByVal Parameter2 As String)
Try
'Do some process that causes and error.
Catch ex As Exception
Dim ErrorDetails = New List(Of String)
ErrorDetails.Add("Parameter Values:")
ErrorDetails.Add(String.Format("Parameter 1: {0}", Parameter1))
ErrorDetails.Add(String.Format("Parameter 2: {0}", Parameter2))
RaiseNewCustomException(ex, ErrorDetails)
End Try
End Sub
は、パラメータとその値の取得は非常にマニュアルとエラーを起こしやすいです。より自動化された/エラーの少ない方法でこの問題にアプローチする方法はありますか?
私はリフレクションで遊んでいましたが、リフレクションでパラメータ値を確認できるとは思いません。
Public Sub Dosomething(ByVal Parameter1 As String, ByVal Parameter2 As String)
Try
'Do some process that causes and error.
Catch ex As Exception
RaiseNewCustomExceptionAndAutomaticallyGenerateParameterErrorString(ex, System.Reflection.MethodInfo.GetCurrentMethod())
End Try
End Sub
私はこれまでにこのようなことをしてきました。 ParamArrayのアイデアは素晴らしいです。また、RaiseNewException(例: "Arg1"、ValueofArg1、 "Arg2"、ValueofArg2)などのようにして、paramarrayの項目0,2,4などを使ってparamarrayを実行することもできます。値の場合それはまだmaintの頭痛ですが、それは少し良いです。代わりに、PostSharpのようなコードウィーバーがこの種のことをすることができます。 – DarinH