Код ниже будет жаловаться
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 всегда должны быть последним оператором в функции и что он выходит из функции и возвращает управление вызывающему коду. Почему это бросает вызов моей теории профессора и почему только один из них генерирует предупреждение?