【发布时间】:2011-10-14 13:45:40
【问题描述】:
我正在编写一些具有 2 个(主)子系统的类。一部分依赖于 boost::filesystem 而另一部分依赖于 tinyxml。 (基本上,它读取一个 xml,并根据 xml 的数据使用boost::filesystem 的函数来更多地访问其他文件)。
现在这两个都“可能”抛出异常。我想知道如何处理这些异常:
类本身 - 在大多数情况下 - 无法“修复”异常,只能将其扔回。 (最可能的情况是用户输入错误)。
但是在这种情况下应该怎么做呢? - boost::filesystem 和 tinyxml 都有自己的异常,彼此并不完全兼容。
我应该只期望这个类的用户处理 boost/tinyxml 异常吗? - 到目前为止,这些库的全部使用对最终用户是隐藏的。
我应该将扩展重新打包成我自己的吗?我总是对重新打包犹豫不决,因为这意味着需要大量额外的 try ... catch 块。
你有什么推荐给我的?
【问题讨论】:
-
""likely"",用引号括起来吗?你什么意思?代码是否允许抛出异常? Here is a previous answer 我的主题。
-
我的意思可能是:发生异常是有充分理由的:磁盘可能被写保护,输入路径可能有问题,可能存在损坏的文件等。这些事情可能会发生因此,很多不应成为整个应用程序崩溃的原因。
标签: c++ exception exception-handling