dlaczego instrukcja return musi poprzedzać instrukcję throw w bloku catch
Poniższy kod narzeka
try
{
session.Save(obj);
return true;
}
catch (Exception e)
{
throw e;
return false; // this will be flagged as unreachable code
}
nie będzie to:
try
{
session.Save(obj);
return true;
}
catch (Exception e)
{
return false;
throw e;
}
Nie rozumiem ... Myślałem, że mój csc101 powiedział mi, że instrukcje zwrotne powinny zawsze być ostatnią instrukcją w funkcji i że wychodzą z funkcji i zwracają kontrolę do kodu wywołującego. Dlaczego to przeczy logice mojego profesora i dlaczego tylko jeden z nich generuje ostrzeżenie?