Ben*_*nny 0 c# exception-handling
假设methodA和methodB都会抛出几种类型的异常,而有些异常属于同一类型,有些则不是,那么处理这种情况的最佳做法是什么?
风格A:
void foo()
{
try
{
methodA();
}
catch (exceptionTypeA)
{
handleA;
}
try
{
methodB();
}
catch (exceptionB)
{
handleB;
}
}
Run Code Online (Sandbox Code Playgroud)
风格B:
void foo()
{
try
{
methodA();
methodB();
}
catch (exceptionTypeA)
{
handleA;
}
catch (exceptionB)
{
handleB;
}
}
Run Code Online (Sandbox Code Playgroud)
Ada*_*son 11
两者都不"更好"; 他们只是不同.根据您在catch块methodB中执行的操作,即使methodA抛出类型异常,第一个选项也允许执行exceptionTypeA,而第二个块要求methodA成功才能methodB被调用.