无论如何抛出一个异常的情况下离开无法到达的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.
}
怎么办?
UPDATE
我看到一些答复说,在以后的日子取出扔会导致编译器错误。然而,简单地删除(或注释)抛出之后不会中断,会叠加这些情况,这可能是非预期的行为。我并不是说这是一种可能的情况,但是......呃,防御性的编程只关于可能的情况?
'break'不再需要,我将它们删除,因为我将警告作为错误进行构建。 – asawyer 2012-03-29 21:56:30
有趣的问题 - 我最初的反应是包含break语句,但我认为这完全归结于习惯。 – KazR 2012-03-29 21:59:15
编译指示警告禁用,如果你觉得你的担心是有效的,但不想给别人带来不便,但是过分防御可能会迅速混乱你的代码库 – Michael 2012-03-29 22:09:23