È sciocco da parte mia lasciare dichiarazioni di interruzione irraggiungibili in un caso che genera comunque un'eccezione? La parte difensiva di me vuole lasciarla lì nel caso in cui la logica cambi. Un'altra parte di me non vuole che altri sviluppatori vedano avvisi del compilatore sul mio codice ("Rilevato codice non raggiungibile").Devo lasciare un'interruzione irraggiungibile in un caso in cui lancio un'eccezione?
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.
}
Cosa fare?
UPDATE
vedo alcune risposte dicendo che la rimozione del lancio ad una data successiva causerebbe un errore di compilazione. Tuttavia, semplicemente rimuovendo (o commentando) il lancio senza interruzioni, i casi potrebbero essere impilati. Non sto dicendo che è uno scenario probabile, ma ... beh, la programmazione difensiva riguarda la lotta solo a possibili scenari?
Il 'break' non è più necessario, li rimuovo perché costruisco con avvisi come errori. – asawyer
Interessante domanda: la mia prima reazione sarebbe quella di includere l'affermazione della pausa, ma penso che sarebbe semplicemente un'abitudine. – KazR
disattiva avviso pragma se ritieni che la tua preoccupazione sia valida ma non vuoi disturbare gli altri, ma essere eccessivamente difensivo può ingombrare rapidamente il tuo codice base – Michael