Как отловить исключение Interbase в Connect, когда GDB-файл не существует по заданному пути - PullRequest
1 голос
/ 05 марта 2011

На моей машине установлены fib + comps и пытаюсь поймать исключение Interbase при подключении, но одно исключение я не могу поймать

try {
        DM->dBase->Connected=false;
        DM->dBase->DBName=DBPATH;
        DM->dBase->Connected=true;
    } catch (Exception &e) {
        ShowMessage("Exception "+ (AnsiString(e.Message)));
    }

если я изменяю DBPATH на несуществующий gdb-файл, выдается исключение, подобное

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

Можно ли поймать это исключение ???? Я отлаживал свой код, но курсор не появлялся до тех пор, пока не попытался перехватить блокировку исключения, а до этого включалось вышеупомянутое исключение !!!

Если да, как я могу поймать такого рода исключения ????

1 Ответ

3 голосов
/ 07 марта 2011

Может ли быть так, что исключение не унаследовано от базового класса исключений Exception, если вы попытались также добавить catch(...)?

Я не уверен, что полностью понимаю ваш пост, но возможно, что то, что вы видите, не то, что ваша программа не ловит исключение.Это то, что отладчик представляет его вам до того, как он будет обработан вашим оператором catch?Если это так, то вы можете сказать отладчику, чтобы он не представлял вам этот тип исключения.

Приходит ли исключение, если вы запускаете программу вне отладчика?

...