首页 / C# / 在C#中捕获本机C异常
在C#中捕获本机C异常
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了在C#中捕获本机C异常,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含914字,纯文字阅读大概需要2分钟。
内容图文
![在C#中捕获本机C异常](/upload/InfoBanner/zyjiaocheng/777/98795698ff3843ff9a00c208027e2f81.jpg)
我有一些本机C类库,我已经用C .NET包装了,然后我从C#调用(三层!).
我可以从C .NET中抛出异常,并愉快地在C#中捕获它们.麻烦的是,我可以捕获我的本机C异常的唯一方法是捕获System.Exception,这很好但是在从std :: exception到System.Exception的转换中我丢失了大部分关于错误的信息(对于示例错误消息!).我可以在C .NET层中捕获本机异常并重新抛出.NET异常,但这是一个侵入式解决方案,需要我在每个C .NET方法调用周围放置try-catch块(以捕获本机异常和重新抛出) .
是否有替代解决方案,或者我只是要弄脏手…
解决方法:
您将不得不弄脏自己,但是通过创建预处理器宏来封装所有重复的catch逻辑,您可以大大减少工作量.
我假设您想要捕获几种不同类型的异常,例如MFC CException,std :: exception,以及SEH异常.
您可能还想编写包装函数来返回HRESULTS并使用SetErrorInfo(即转换为COM错误代码和错误信息) – 您可能会认为这为.Net提供了一个更清晰的界面,可以很好地将其转换为.Net异常.这样可以避免使用C .Net层,并允许您使用P / Invoke,以及使其可以从VBA调用.
或者你可能不会……只是指出选项!
内容总结
以上是互联网集市为您收集整理的在C#中捕获本机C异常全部内容,希望文章能够帮你解决在C#中捕获本机C异常所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。