如何处理从SW到SWIG到Java的异常

我们正在实现C代码的包装器以接触 Java客户端.我已经看过 SWIG documents about exception handling,但这在三层(C / SWIG / Java)的编码术语中有什么意义呢?

如果有人有工作实例或建议,我将不胜感激.

解决方法

因为我已经和我搏斗了(从我的个人资料中查看我的博客,它是关于python,SWIG,异常和导演但应该有帮助)让我给你一些建议:

>不要将C异常发送到Java堆栈.它会使你的应用程序崩溃.确保它们都以正确的方式包裹.我知道你在问这个问题,但是你必须明白这一点.一个错过的例外就可以解决这个问题.
>不要尝试将Java异常传递到C堆栈,它们会转换为SWIGDirectorExceptions或SWIGMethodExceptions.这是一个真正的痛苦,因为您丢失了Java异常的类型信息.相反,如果你不是在处理一个控制器,那么创建一个C类,除了引发C异常之外什么也不做,这样你就可以在C堆栈中传播C异常.
>在std :: string中包装从Java传递给C的所有裸字符串.如果将它们保存为const char指针,Java将具有垃圾收集它们的选项.所有项目都是如此,但它是一个容易被忽视的项目,我已经完成了它并且已经看过几次了.

之后,请不要阅读1.1.使用2.0或1.3中的文档.它更清楚了.

相关文章

最近看了一下学习资料,感觉进制转换其实还是挺有意思的,尤...
/*HashSet 基本操作 * --set:元素是无序的,存入和取出顺序不...
/*list 基本操作 * * List a=new List(); * 增 * a.add(inde...
/* * 内部类 * */ 1 class OutClass{ 2 //定义外部类的成员变...
集合的操作Iterator、Collection、Set和HashSet关系Iterator...
接口中常量的修饰关键字:public,static,final(常量)函数...