当前位置:   article > 正文

mysql sqlexception_c-很奇怪-mysql的sql :: SQLException未被其类型捕...

c++ mysql sqlexception

我正在使用带有此(稍微简化)代码的mysql c连接器.

try

{

statement->setString(1, word);

statement->executeUpdate();

}

catch( sql::SQLException& e )

{

// I don't get here

return sqlerrno_to_error_code( e.getErrorCode() );

}

catch( std::exception& e )

{

// I do get here and the cast works

sql::SQLException& sqle = (sql::SQLException&) e;

return sqlerrno_to_error_code( sqle.getErrorCode() );

}

连接器应该抛出sql :: SQLException,它是从std :: exception派生的,并具有一些其他方法,如getErrorCode().

引发的异常在第二个catch块中捕获,但是可以成功地强制转换为sql :: SQLException(并用作).

更奇怪的是,不同可执行文件中的类似代码按预期捕获了sql :: SQLException.它们之间的区别在于,第一个位于共享库(.so)中,该共享库已加载dlopen().

RHEL 5.7 32位,gcc 4.1.2

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/820137
推荐阅读
相关标签
  

闽ICP备14008679号