C++ 异常处理Demo - win32 版

592 篇文章 8 订阅 ¥99.90 ¥299.90
这篇博客介绍了C++中的异常处理机制,通过`throw`关键字抛出异常,`try`块检测异常,然后由`catch`块捕获。异常可以是基本类型或聚合类型,C++标准库中的异常通常基于`exception`类。catch块在运行时匹配异常类型,允许向上转型,使得基类能够捕获派生类异常。文中还提供了一个实例,演示了异常处理的过程。
摘要由CSDN通过智能技术生成

throw关键字用来抛出一个异常,这个异常会被 try 检测到,进而被 catch 捕获。

异常既然是一份数据,那么就应该有数据类型。C++ 规定,异常类型可以是 int、char、float、bool 等基本类型,也可以是指针、数组、字符串、结构体、类等聚合类型。C++ 语言本身以及标准库中的函数抛出的异常,都是 exception 类或其子类的异常。也就是说,抛出异常时,会创建一个 exception 类或其子类的对象。

可以将 catch 看做一个没有返回值的函数,当异常发生后 catch 会被调用,并且会接收实参(异常数据)。

但是 catch 和真正的函数调用又有区别:
真正的函数调用,形参和实参的类型必须要匹配,或者可以自动转换,否则在编译阶段就报错了。
而对于 catch,异常是在运行阶段产生的,它可以是任何类型,没法提前预测,所以不能在编译阶段判断类型是否正确,只能等到程序运行后,真的抛出异常了,再将异常类型和 catch 能处理的类型进行匹配,匹配成功的话就“调用”当前的 catch,否则就忽略当前的 catch。

#include <windows.h>
#include "resource.h"
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值