無論如何拋出一個異常的情況下離開無法到達的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