Application_Error
でエラーを処理する場合、どちらを使用する必要がありますか?Application_Error - GetLastError()またはGetLastError()。GetBaseException()
私は両方で複数の例を見つけていますが、一方が他方よりも優れているかどうかは明らかではありません。正しいエラーが1つだけ表示されるケースはありますか?
はまた、私はこの問題を疑うが、アプリケーションはそれが正確にあなたが必要とする何をするかに依存MVC 4
Application_Error
でエラーを処理する場合、どちらを使用する必要がありますか?Application_Error - GetLastError()またはGetLastError()。GetBaseException()
私は両方で複数の例を見つけていますが、一方が他方よりも優れているかどうかは明らかではありません。正しいエラーが1つだけ表示されるケースはありますか?
はまた、私はこの問題を疑うが、アプリケーションはそれが正確にあなたが必要とする何をするかに依存MVC 4
を使用しています。 Exception.GetBaseExceptionのdocumenationから
:
派生クラスでオーバーライドされると、後続の1つの以上の例外の根本的な原因であるExceptionを返します。
GetLastError().GetBaseException()
はあなたにFooException
を得るでしょうしながらGetLastError
は、あなたにFooBarException
を取得しますtry { //Lots of code, method calls, etc... try { throw new FooException("Foo"); } catch(FooException fe) { throw new BarException("Bar", fe); } }catch(BarException be) { throw new FooBarException("FooBar", be); }
:例外は、次のようにスローされますので、もし
Application_Error
は、おそらくいくつかの例外処理メカニズムの後、上位レベルで例外を処理します。したがって、前者は未処理の例外を返し、後者は根本原因を返します。
私はFooの、バーとFooBarの例外クラスがGetLastError
かInnerException
ニースの説明を上書きしないことを前提としています。私は未処理の例外が必要なので、 'GetLastError()'です。 – Stijn