我采用某种方法,一般认为:
public bool Foo()
{
try
{
// bar
return true;
}
catch (FileNotFoundException)
{
// recover and complete
}
catch (OtherRecoverableException)
{
// recover and complete
}
catch (NonRecoverableException ex)
{
ExceptionPolicy.HandleException(ex, "LogException");
return false;
}
}
这种方法对完成至关重要,它有外部恢复步骤——这相对常见于将无法收回的接受抛在一边——它期望它退回不实的,现在无法完成报告,处理工作也随之进行。 不可收回的接受并不使该方案处于无效状态。
当Im单位测试和其中一项例外被推翻时,我发现错误:
Activation error occured while trying to get instance of type ExceptionPolicyImpl
我愿重申,为了获得实际的/原始的例外情况信息,而不是EntLib无法记录(实际上强迫不可收回的接受,并且具有[可收回的除外(类型)]]。 单位测试,以确保这种方法符合具体情况。
我怎么办?
edit Using preprocessor directives is not ideal as I hate seeing test-specific code in the codebase.