Подтвердить что ты не робот

В блоке try catch нехорошо возвращаться внутри catch? что является хорошей практикой

В блоке catch try используется неверная практика для возврата значений из блока catch в С++?

try
{
    //Some code...
    return 1;
}
catch(...)
{
    return 0;
}

Какой метод использования try/catch является хорошей практикой?

4b9b3361

Ответ 1

Нет, до тех пор, пока возвращаемое значение означает, что вы хотите, вы можете вернуться в любое время. (убедитесь, что вы очистили память, если она выделена).

Ответ 2

Я предпочитаю иметь несколько точек выхода в моем коде, поэтому я бы написал:

int rc = 1;
try {
  // some code
}
catch(...) {
  rc = 0;
}
return rc;

Мне легче отлаживать и читать код, когда мне нужно только отслеживать один оператор return.

Ответ 3

я бы предположил, что если вы не знаете, какое исключение выбрано кодом, тогда вы можете это сделать. Но в этом случае клиент должен принять действие на основе возвращаемого значения.

Но было бы лучше создать пользовательское исключение и бросить его, чтобы клиент мог узнать, что произошло в действительности. Это то, что фактическое использование исключения и рекомендуется для писателя библиотеки.

Ответ 4

- хорошая практика, чтобы он возвращался в конце функции после блока try/catch.