2012-06-01 2 views
0

Я использую libpqxx, но я застрял в следующем.Как угадать тип исключения, созданный библиотечными функциями libpqxx C++?

Некоторые функции позволяет сказать pqxx: connection_base исключение класса броска, в соответствии с файлом connection_base.hxx:

void disconnect() throw(); 

Мой вопрос: как я могу догадаться, что это за исключением брошено? Должен ли я ожидать pqxx::exception, pqxx::sql_error? Входящие файлы кажутся мне бесполезными, и документация, созданная Doxygen, очевидно, не помогает.

ответ

1
void disconnect() throw(); 
        ^^^^^^^^^^ 

Спецификация Exception с пустым броском говорит вам, что эта функция не будет бросать никаких исключений.

Вы не должны догадаться, что исключение функция показывает, как функция не должна содержать спецификацию исключений, которая означает, что он может бросить любое исключение (может быть пойман уловом все обработчик catch(...)Примечание: это плохая практика) или он должен документировать, какие исключения он может бросить.

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

+0

О, я думаю, я углубится в свои уроки на C++. Попробует сбросить строку в поддерживающие библиотеки. Спасибо ! – SCO

 Смежные вопросы

  • Нет связанных вопросов^_^