在无论如何都抛出异常的情况下留下无法访问的中断语句是我的愚蠢吗?如果逻辑发生变化,我的防御部分想把它留在那里。我的另一部分不希望其他开发人员在我的代码上看到编译器警告(“检测到无法访问的代码”)。
switch (someInt)
{
case 1:
// Do something
break;
case 2:
// Do something else
break;
case 3:
// Oh, we don't use threes here!
throw new Exception("Business rules say don't use 3 anymore");
break; // Unreachable...until the fickle business rules change...
default:
throw new Exception("Some default exception");
break; // Unreachable...until...well, you get the idea.
}
该怎么办?
更新
我看到一些回复说在以后删除抛出会导致编译器错误。但是,简单地删除(或评论)抛出而不在它之后中断会堆叠案例,这可能是意想不到的行为。我并不是说这是一种可能的情况,但是……嗯,防御性编程是否只针对可能的情况?