微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何处理从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中的文档.它更清楚了.

原文地址:https://www.jb51.cc/java/129383.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐