Обработка исключений между функциями-членами класса - PullRequest
0 голосов
/ 30 января 2020

Предположим, что есть две функции-члена f1 (), f2 () объекта O2. Рассмотрим код ниже.

O2 :: f2 () {

if(somestring.length()<20)
{
    throw
}

}

O2 :: f1 () {

try
{
    f2()
}
catch(...)
{
    //Some handling
}

}

Здесь в идеале f1 должен отлавливать исключение, создаваемое исключением. Но этого не происходит. Вместо этого получаем ошибку, как показано ниже:

Завершено без каких-либо активных исключений

1 Ответ

0 голосов
/ 30 января 2020

Это потому, что у f2 есть пустой оператор throw. Если этот оператор выполняется без обработки активного исключения, предполагается, что вызывается терминатор. Вам нужно что-то бросить, чтобы поймать

...