自作のExceptionをCatchしたり、Genericを付けているException(= 意図的に発生させたException)をうまく管理したいですよね。
標準のExceptionにエラー情報を付帯させた場合、ガチのExceptionと区別して処理するためには以下のようにIsGenericTypeで識別します。
catch (FaultException ex)
{
if (ex.GetType().IsGenericType)
{
var genericType = ex.GetType().GetGenericArguments().FirstOrDefault();
if (genericType != null)
{
// Do what you want
}
}
this.Throw(
new FaultException<SomeErrorInfo>(
new SomeErrorInfo(ex.ErrorCode, ex.Message, methodName),
new FaultReason(ex.Message)));
}
コメント