2023-01-20 353
我们正在对C ++代码进行包装,以接触Java客户端.我已经看过 swig关于异常处理的文档但是这是什么在三层(C ++/swig/java)中以编码术语转换?
如果有人有工作示例或建议,我会很感激.
由于我已经对此进行了努力(请参阅我的个人资料中的博客,在Python,Swig,例外和董事上,但应该有所帮助),让我给您一些建议:
之后,不要阅读1.1.使用2.0或1.3的文档.更清楚.
另请参见SWIG 2.0文档中此异常处理.
为了避免不止一次编写模式,我创建了一个swig宏支持方法,该方法抛出一种类型的C ++异常 – 通过抓住并抛出相应的Java例外:
WRAP_THROW_EXCEPTION( myCppDeclaration, com::foo::MyCppExceptionClass,
"com.foo.MyException",
"com/foo/MyException" );
这是宏:
%define WRAP_THROW_EXCEPTION( MATCH, CPPTYPE, JTYPE, JNITYPE )
%javaexception(JTYPE) MATCH {
try {
$action
}
catch ( CPPTYPE & e ) {
jclass eclass= jenv->FindClass(JNITYPE);
if ( eclass ) {
jenv->ThrowNew( eclass, e.what() );
}
}
}
%enddef
以上所述是小编给大家介绍的如何处理从C ++通过SWIG到Java的异常,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对77isp云服务器技术网的支持!
原文链接:https://77isp.com/post/25914.html
=========================================
https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。
数据库技术 2022-03-28
网站技术 2022-11-26
网站技术 2023-01-07
网站技术 2022-11-17
Windows相关 2022-02-23
网站技术 2023-01-14
Windows相关 2022-02-16
Windows相关 2022-02-16
Linux相关 2022-02-27
数据库技术 2022-02-20
抠敌 2023年10月23日
嚼餐 2023年10月23日
男忌 2023年10月22日
瓮仆 2023年10月22日
簿偌 2023年10月22日
扫码二维码
获取最新动态