【异常处理——上】
异常处理是编程中用于应对运行时错误或意外情况的机制,确保程序不会因出错导致中断运行,保持稳定输出结果。通过捕获和处理异常,可以避免程序崩溃,并提供有意义的错误信息。
- 常见异常类型
语法错误:代码不符合语言规范。
运行时错误:如除以零、索引越界。
逻辑错误:程序行为与预期不符,需通过调试解决
本篇总线(读前概览,先理清思路)
- 明确异常处理的作用,大致了解标准异常
- C++异常处理涉及到的三个关键字的作用,梳理顺序与逻辑
- 再次明确关键字有些功能实现不了的解决方案及思路梳理。
标准异常处理
C++ 的异常处理核心是 try-catch-throw 语法(语言内置特性),不依赖任何头文件(不加exception也能正常运行)。你可以抛出任意类型的异常(比如整数、字符串、自定义类等),并捕获它们。
C++异常处理涉及到三个关键字:try、catch、throw
明确思路:先捕获后抛出!!!就像遇到问题才报错一样,没有问题时不会报错,报也没有实际意义。
- 普通异常:
inf就是出错后的返回值,下面来说一下try/catch/throw的异常处理方法:
抛出异常(throw)
throw后面的引号是需要输出的报错内容。
设想一下我们不做异常处理时会用if排出特殊情况,然后输出语句进行报错,那throw不就是抛出语句进行报错的吗,不妨来试一下:
很显然不是,所以这句验证了前面提到先捕获后抛出。
捕获异常 (try/catch)
try后面中括号里面是可能出错的部分;catch后面小括号里面是在try中可能出错的部分里面抽出的出错情况,可以写具体错因,也可以写"…"来捕捉全部错因。
如图,发现之前写的throw没有实现遇到故障就抛出的效果,思路梳理:
先try:尝试纠错,再catch:锁定目标,然后throw:检测到错误抛出警告,但抛出的前提是在catch部分需要“锁定”需要throw的内容,并用指针形式带回再输出:
现在思路理清了吗~