问题描述
我正在用C编写Windows特定的库,并且正在考虑使用try-finally
statements(Microsoft对C语言的扩展)来简化我的代码,即使在意外失败的情况下也可以清理资源。 Cleaning up resources中给出了一个示例。
我也不关心操作系统的可移植性,也不关心编译器的可移植性,the current version of Clang appears to support it on Windows。
到目前为止,我确定的唯一负面后果是对标准C ++异常处理的潜在干扰。有关详细说明,请参见文档页面Handle structured exceptions in C++和/EH (Exception handling model)。对于.NET语言来说,这种情况似乎是安全的,但是我担心C ++用户可能没有设置正确的编译器选项,并且可能会遇到诸如this SO answer中所述的不便之处。
这是一个有效的问题吗?重新考虑使用try-finally
语句是否还有其他缺点或原因?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)