解析配置或 XML 文件有哪些可能的例外
what are the possible exceptions for parsing a config or xml file?
如何处理解析文件时所有可能的异常?
我的代码有一个抽象基类和两个派生类(XML 和 config),具体取决于我编写的用于解析的代码的文件类型。
我只有一个例外:
#include <stdexcept>
namespace MyNameSpace
{
class ParserException: public std::runtime_error
{
public:
ParserException(std::string const& msg)
: runtime_error(msg)
{}
};
};
如果有问题,只需抛出带有适当错误消息的解析器异常。如果存在一种特殊情况,用户实际上会从中恢复,那么请为这种情况创建一个特定的异常(派生自 ParserException)。
- 不要为每个错误创建新的异常类。
- 如果您确实为解析器创建了更多异常。然后从 ParserException 派生它们,以便它们可以作为一个组进行处理。
- 如果发生一些通用的事情。使用标准例外之一。
用法:
if (bad)
{ throw ParserException("Something Bad Happened");
}
一定有很多例外,其中许多可能不太可能发生,但显而易见的可能是:
- 文件中没有数据(无论出于何种原因无法加载)
- 无效的 XML
- 意外的数据格式(尽管这应该通过正确的解析来处理)
- XML 中的非法字符(未正确转义)
- 数据中的扩展 Unicode 字符(应在解析中优雅地处理)
- 解析器内存不足
这是一个开始...!
相关文章:
- 为不同配置设置MSVC_RUNTIME_LIBRARY的正确方法是什么
- Cppcheck生成xml转储文件
- 无法找到/读取配置文件.conf-FileIOException
- 在WSL:configure_file上对config_file的每次调用都失败:配置文件时出现问题
- 一种在C++中读取TXT配置文件的简单方法
- 生成MRPT库时cmake配置失败
- 如何在pugixml中获取节点的内部XML
- 如何使用tinyxml2从XML加载父实体和子实体
- FFMPEG配置文件级别id大小无效
- boost xml parsingl将xml的路径作为变量发送
- 如何通过Conan和CMake找到用于pkg配置的.pc文件
- C++RapidXml-使用first_node()遍历以修改XML文件中节点的值
- 使用 Tinyxml 在 xml 中添加一个子子项
- 增强基于 XML class_id的反序列化
- Qt - 通过 xml 配置接口
- Linux C++ 由 XML 文件配置的应用程序设置
- 无法将splitterChannel与高级xml配置一起使用
- C++:如何加密XML配置文件
- 解析配置或 XML 文件有哪些可能的例外
- log4cplus 是否支持 xml 配置文件和条件日志记录