C++教程

浏览4314
更新时间2025-08-05

C++ 异常

在执行 C++ 代码时,可能会发生各种错误:程序员编写的代码错误,由于错误输入导致的错误,或者其他不可预见的事情。

当发生错误时,C++ 通常会停止并生成一条错误信息。这在技术上的术语是:C++ 将抛出异常(throw an error)。

C++ try 和 catch

C++ 中的异常处理包含三个关键字:trythrowcatch

try 语句允许您定义一段代码,该代码在执行时会测试是否有错误。

当检测到问题时,throw 关键字会抛出异常,这允许我们创建自定义错误。

catch 语句允许您定义一段代码,如果 try 块中发生错误,该代码将会被执行。

trycatch 关键字是成对出现的:

实例

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

请思考下面的例子:

实例

try {  
  int age = 15;  
  if (age >= 18) {  
    cout << "访问被授予 - 您的年龄足够了。";  
  } else {  
    throw (age);  
  }  
}  
catch (int myNum) {  
  cout << "访问被拒绝 - 您必须至少年满18岁。\n";  
  cout << "年龄是:" << myNum;  
}
运行实例 »

点击 "运行实例" 按钮查看在线实例

例子解释

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

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

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

实例

int age = 20;
运行实例 »

点击 "运行实例" 按钮查看在线实例

您还可以使用 throw 关键字输出参考号,例如用于组织目的的自定义错误号/代码:

实例

try {  
  int age = 15;  
  if (age >= 18) {  
    cout << "访问被授予 - 您的年龄足够了。";  
  } else {  
    throw 505;  
  }  
}  
catch (int myNum) {  
  cout << "访问被拒绝 - 您必须至少年满18岁。\n";  
  cout << "错误号码:" << myNum;  
}
运行实例 »

点击 "运行实例" 按钮查看在线实例

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

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

实例

try {  
  int age = 15;  
  if (age >= 18) {  
    cout << "访问被授予 - 您的年龄足够了。";  
  } else {  
    throw 505;  
  }  
}  
catch (...) {  
  cout << "访问被拒绝 - 您必须至少年满18岁。\n";  
}
运行实例 »

点击 "运行实例" 按钮查看在线实例

相关视频

更多

免费

php8,我来也
初级php8,我来也

321849次学习

收藏

免费

Thinkphp6.0正式版视频教程
中级Thinkphp6.0正式版视频教程

382470次学习

收藏

免费

细说PHP第一季
中级细说PHP第一季

282865次学习

收藏

免费

简单聊聊PHP创业那点事
初级简单聊聊PHP创业那点事

13418次学习

收藏
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号