C++异常处理
一.关键Api介绍
1.HRESULT
H result,错误代码id;
2.FormatMessage
格式化消息字符串;
DWORD FormatMessage(
DWORD dwFlags, //格式化选项
LPCVOID lpSource, //消息定义的位置
DWORD dwMessageId, //消息标识符HRESULT
DWORD dwLanguageId, //语言标识符
LPTSTR lpBuffer, //指向缓冲区的指针,这个是接受格式化后的字符串
DWORD nSize,
va_list *Arguments
);
前面几个都有点用,最后两个好像没啥用;具体看MSDN官方文档;
这个Api将错误id转化为了可读的字符串;
3.exception
windows系统runtime中的自带了exception类;
除了构造,拷贝构造,同类赋值,析构四套件外,还有一个公有的what方法和私有字段_Data结构体;
以下是__std_exception_data结构体;What是异常常量字符串;DoFree字面意思是否释放该内存;
what方法中,判断data中的what字符串为空,返回未知异常,否则返回what;