我在一个抛出异常的案例中留下了不可达的break语句,这样做是愚蠢的吗? 从防御性的角度来看,如果逻辑发生改变,我希望它还在那里。 另一方面,我不希望其他开发人员在我的代码上看到编译器警告(“检测到不可到达的代码”)。
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.
}
该怎么做?
更新
我看到一些回复说在以后删除throw会导致编译器错误。但是,仅仅删除(或注释)throw而没有break跟随它会堆叠情况,可能会导致意外的行为。我不是说这是一个可能发生的情况,但是...防御性编程只是为了应对可能发生的情况吗?
break
,我将其删除是因为我使用警告作为错误来构建代码。 - asawyer