C++ 教程

C++ 教程 C++ 简介 C++ 下载安装 C++ 语法 C++ 输出 C++ 注释 C++ 变量 C++ 用户输入 C++ 数据类型 C++ 运算符 C++ 字符串 C++ 数学运算 C++ 布尔值 C++ 条件语句 C++ Switch 语句 C++ While 循环 C++ For 循环 C++ Break/Continue 语句 C++ 数组 C++ 引用 C++ 指针

C++ 函数

C++ 函数 C++ 函数参数 C++ 函数重载

C++ 面向对象

C++ OOP C++ 类和对象 C++ 类方法 C++ 构造函数 C++ 访问修饰符 C++ 封装 C++ 继承 C++ 多态

C++ 高级教程

C++ 文件 C++ 异常处理 C++ 动态内存 C++ 命名空间 C++ 模板 C++ 预处理器 C++ 信号处理 C++ 多线程 C++ Web 编程 C++ 正则表达式

C++ 如何使用

C++ 两个数字相加

C++ 标准库参考

C++ 标准库 - 简介 C++ 标准库 - <fstream> C++ 标准库 - <iomanip> C++ 标准库 - <ios> C++ 标准库 - <iosfwd> C++ 标准库 - <iostream> C++ 标准库 - <istream> C++ 标准库 - <ostream> C++ 标准库 - <sstream> C++ 标准库 - <streambuf> C++ 标准库 - <atomic> C++ 标准库 - <complex> C++ 标准库 - <exception> C++ 标准库 - <functional> C++ 标准库 - <limits> C++ 标准库 - <locale> C++ 标准库 - <memory> C++ 标准库 - <new> C++ 标准库 - <numeric> C++ 标准库 - <regex> C++ 标准库 - <stdexcept> C++ 标准库 - <string> C++ 标准库 - <thread> C++ 标准库 - <tuple> C++ 标准库 - <typeinfo> C++ 标准库 - <utility> C++ 标准库 - <valarray>

C++ 模板库参考

C++ STL 库 - <array> C++ STL 库 - <bitset> C++ STL 库 - <deque> C++ STL 库 - <forward_list> C++ STL 库 - <list> C++ STL 库 - <map> C++ STL 库 - <queue> C++ STL 库 - <set> C++ STL 库 - <stack> C++ STL 库 - <unordered_map> C++ STL 库 - <unordered_set> C++ STL 库 - <vector> C++ STL 库 - <algorithm> C++ STL 库 - <iterator>

C++ 实例

C++ 实例 C++ 练习 C++ 测验



C++ 异常处理

C++ 异常处理

在执行 C++ 代码时,可能会发生不同的错误:程序员编写的编码错误、错误输入引起的错误或其他不可预见的事情。

当发生错误时,C++ 通常会停止并生成错误消息。这个术语的技术术语是:C++ 抛出exception异常(抛出错误)。


C++ try 和 catch 语句

C++中的异常处理包括三个关键字: try, throw and catch:

try 语句允许您定义要在执行时测试错误的代码块。

throw 关键字在检测到问题时抛出异常,这使我们可以创建自定义错误。

catch 语句允许您在try块中发生错误时定义要执行的代码块。

trycatch 关键字成对出现:

实例

try {
   // 要尝试的代码块
  throw exception; // 出现问题时抛出异常
}
catch () {
   // 处理错误的代码块
}

参考下面的例子:

实例

try {
  int age = 15;
  if (age > 18) {
    cout << "Access granted - you are old enough.";
  } else {
    throw (age);
  }
}
catch (int myNum) {
  cout << "Access denied - You must be at least 18 years old.\n";
  cout << "Age is: " << myNum;
}
运行实例 »

实例解析

我们使用try块来测试一些代码:如果age变量小于18,我们将抛出throw一个异常,并在catch块中处理它。

catch块中,我们捕获错误并对其进行处理。catch语句接受一个参数:在我们的示例中,我们使用int变量(myNum)(因为我们在try块(age)中抛出int类型的异常)来输出age的值。

如果没有发生错误(例如,如果age20而不是15,意味着它将大于18),则跳过catch块:

实例

int age = 20;
运行实例 »

您还可以使用throw关键字输出异常参考编号,例如错误数字码/代码:

实例

try {
  int age = 15;
  if (age > 18) {
    cout << "Access granted - you are old enough.";
  } else {
    throw 505;
  }
}
catch (int myNum) {
  cout << "Access denied - You must be at least 18 years old.\n";
  cout << "Error number: " << myNum;
}
运行实例 »

处理任何类型的异常 (...)

如果不知道try块中使用的throw类型, 可以在catch块中使用三点语法(...),它将处理任何类型的异常:

实例

try {
  int age = 15;
  if (age > 18) {
    cout << "Access granted - you are old enough.";
  } else {
    throw 505;
  }
}
catch (...) {
  cout << "Access denied - You must be at least 18 years old.\n";
}
运行实例 »