MFC异常与C++标准异常
MFC较好地将异常封装到CException类及其派生类中,自成体系,下表给出了MFC 提供的预定义异常:
异常类 含义
CMemoryException 内存不足
CFileException 文件异常
CArchiveException 存档/序列化异常
CNotSupportedException 响应对不支持服务的请求
CResourceException Windows 资源分配异常
CDaoException 数据库异常(DAO 类)
CDBException 数据库异常(ODBC 类)
COleException OLE 异常
COleDispatchException 调度(自动化)异常
CUserException 用消息框警告用户然后引发一般 CException 的异常
标准库异常类
C++标准库异常类定义在四个头文件中:
1) <exception>头文件中定义了异常类exception;
2) <stdexcept>头文件中定义了几种常见的异常类。
3) <new>头文件中定义了bad-alloc异常类。当new无法分配内存时将抛出该异常类对象。
4) <type_info>头文件中定义了bad_cast异常类。当dynamic_cast失败时将抛出该异常类对象。
标准异常类之间的关系:exception派生出runtime_error类、logic_error类、bad_cast类和bad_alloc类。由runtime_error派生出range_error、overflow_error、underflow_error;由logic_error派生出domain_error、invalid_argument、length_error、out_of_range。
exception
|
最常见的问题
|
runtime_error
|
运行时错误:仅在运行时才能检测到的问题
|
range_error
|
运行时错误:生成的结果超出了有意义的值域范围
|
overflow_error
|
运行时错误:计算上溢
|
underflow_error
|
运行时错误:计算下溢
|
logic_error
|
逻辑错误:可在运行前检测到的问题
|
domain_error
|
逻辑错误:域错误
|
invalid_argument
|
逻辑错误:无效参数
|
length_error
|
逻辑错误:试图生成一个超出该类型最大长度的对象
|
out_of_range
|
逻辑错误:使用一个超出有效范围的值
|
注:运行时错误是指在某语句计算过程中产生的错误,逻辑错误是指在某语句执行前检查到的错误。
{
public:
exception(const exception& rhs) throw();
exception& operator=(const exception& rhs) throw();
virtual ~exception() throw();
virtual const char *what() const throw();
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· ASP.NET Core 模型验证消息的本地化新姿势
· 对象命名为何需要避免'-er'和'-or'后缀
· SQL Server如何跟踪自动统计信息更新?
· AI与.NET技术实操系列:使用Catalyst进行自然语言处理
· 分享一个我遇到过的“量子力学”级别的BUG。
· C# 中比较实用的关键字,基础高频面试题!
· .NET 10 Preview 2 增强了 Blazor 和.NET MAUI
· 为什么AI教师难以实现
· 如何让低于1B参数的小型语言模型实现 100% 的准确率
· AI Agent爆火后,MCP协议为什么如此重要!