Ho il codice seguente:Il lancio di un'eccezione all'interno di un metodo causa la restituzione del metodo?
public static Point operator /(Point point, double value)
{
if (value == 0)
{
throw new DivideByZeroException("Cannot divide by zero");
return Point.Origin;
}
return new Point(point.X/value, point.Y/value, point.Z/value);
}
E la prima istruzione return (return Point.Origin;
) è sottolineata in verde in Visual Studio. Il messaggio dice "Rilevato codice irraggiungibile" quando il cursore si trova sopra il testo sottolineato. Questo mi porta alla mia domanda indicata nella riga del titolo:
Il lancio di un'eccezione all'interno di un metodo causa la restituzione del metodo?
Grazie, ho capito ora: Lanciare un'eccezione all'interno di un metodo fa sì che il flusso di esecuzione del programma passi a un gestore di eccezioni appropriato nel metodo, (come un'istruzione catch o finally) se ce n'è uno, o per uscire dal metodo e salire lo stack delle chiamate finché non viene gestito. In ogni caso, l'altro codice nel metodo dopo il 'lancio della nuova eccezione 'e all'esterno di eventuali blocchi catch/finally non verrà mai eseguito. E per chiarire e rispondere alla domanda, il metodo non restituisce un valore, ma "restituisce" nel senso che l'esecuzione del programma ritorna al metodo di chiamata. –