почему оператор return должен предшествовать оператору throw в блоке catch
Код ниже будет жаловаться
try
{
session.Save(obj);
return true;
}
catch (Exception e)
{
throw e;
return false; // this will be flagged as unreachable code
}
тогда как это не будет:
try
{
session.Save(obj);
return true;
}
catch (Exception e)
{
return false;
throw e;
}
Я не понимаю ... Я думал, что мой csc101 сказал мне, что операторы return всегда должны быть последними в функции и что она выходит из функции и возвращает управление вызывающему коду. Почему это противоречит логике моего профессора, и почему только один из них генерирует предупреждение?