注意: throw 抛出异常,catch 捕获异常,try 尝试捕获异常

catch 中的参数类型要和throw 抛出的数据类型一致

try
{
    //可能抛出异常的语句
}
catch (异常类型1)
{
    //异常类型1的处理程序
}
catch (异常类型2)
{
    //异常类型2的处理程序
}
// ……
catch (异常类型n)
{
    //异常类型n的处理程序
}

例1:

 #include <iostream>

 #include <stdlib.h>

using namespace std;

enum index{underflow, overflow};

int array_index(int *A, int n, int index);

int main()
{
int *A = new int[10];
for(int i=0; i<10; i++)
A[i] = i;
try
{
cout<<array_index(A,10,5)<<endl;
cout<<array_index(A,10,-1)<<endl;
cout<<array_index(A,10,15)<<endl;
}
catch(index e)
{
if(e == underflow)
{
cout<<"index underflow!"<<endl;
exit(-1);
}
if(e == overflow)
{
cout<<"index overflow!"<<endl;
exit(-1);
}
} return 0;
} int array_index(int *A, int n, int index)
{
if(index < 0) throw underflow;
if(index > n-1) throw overflow;
return A[index];
}
这是用来处理数组越界的代码,throw 抛出的是枚举型的数据,因此catch 中的数据类型也是相应的枚举型
C++语句中有默认的异常处理函数,会对异常做出处理。

最新文章

  1. [Machine-Learning] 熟悉 Matlab 中的 map
  2. html5中新的标准属性
  3. Node.js权威指南 (4) - 模块与npm包管理工具
  4. CSS display属性的值及作用
  5. Sicily-1438
  6. wl18xx编译的时候出现WARNING: &quot;simple_open&quot; WARNING: &quot;wl12xx_get_platform_data&quot;
  7. GROUP BY语句与HAVING语句的使用
  8. Web前端知识体系精简
  9. Drools文档(六) 用户手册
  10. 死磕 java集合之CopyOnWriteArraySet源码分析——内含巧妙设计
  11. 纯js Ajax 请求
  12. 查询正在运行的请求及其后台对应SQL
  13. git clone Failed to connect to 127.0.0.1 port 43213: Connection refused
  14. [P3768]简单的数学题
  15. Github远程仓库关联
  16. TensorFlow在windows10上的安装与使用(一)
  17. 如何把自己的wordpress网站移到本地修改
  18. 编程语言分类和Python解释器介绍
  19. 集群服务器、负载均衡和session共享,C#的static变量
  20. java开发_mysql中获取数据库表描述_源码下载

热门文章

  1. (三十九)c#Winform自定义控件-面包屑导航
  2. Zabbix数据库空间大小使用计算
  3. JDK1.6 对 synchronized 的锁优化
  4. Windows下如何使用Tensorflow Object Detection API
  5. Linux CentOS7 下设置tomcat 开机自启动
  6. Selenium3 + Python3自动化测试系列九——cookie操作
  7. JSP指令、标签以及中文乱码
  8. Java中集合的概述
  9. 原生js之Ajax
  10. Sherlock之Instructions指令介绍(Sherlock Version: 7.2.5.1 64-bit)