异常处理机制为程序中异常检测和异常处理这两部分的协作提供支持,在C++语言中,异常处理包括:
    *throw表达式(throw expression),异常检测部分使用throw表带是来表示它遇到的了无法处理的问题,我们说throw引发了异常。
    *try语句块(try block),异常处理部分使用try语句处理异常。try语句块以关键字try开始,并以一个或多个catch自居结束。try语句快中代码抛出的异常通常会被某个catch自居处理。因为catch自居”处理“异常,所以它们也被称作异常处理代码。
    *一套异常类(exception class),用于在throw表达式和相关的catch自居之间传递异常具体信息。

例子:
    编写一段程序,从标准输入读取两个整数,输出第一个数除以第二个数的结果,使用try语句块去捕获异常。当第二个数是0时跑出异常,catch子句应该为用户输出一条提示信息,询问其是否输入新数并重新执行try语句块的内容。
#include
<iostream>
using
namespace
std;

int
main()
{
            
int
a,b;
            cout<<
"please input two integers\n"
;
            
while
(cin>>a>>b)
            {
               
try
{
                   
if
(b == 0)
                                       
throw
runtime_error
(
"分母不能为0"
);
//抛出异常
                                        cout<<
static_cast
<
double
>(a) / b<<endl;
                                cout<<
"please input two integers"
<<endl;
            }
               
catch
(
runtime_error
err) {
//捕获异常
                   cout<<err.what()<<endl;
                           cout<<
"Try again\nplease input two integers"
<<endl;
                }
            }
            
return
0;
}


Static 局部静态变量
#include
<iostream>
using
namespace
std;

size_t
add(
int
n
)
{
   
static
size_t
cnt = 0;
//size_t cnt = 0;输出答案0,1,2,3,。。。9;
            cnt +=
n
;
            
return
cnt;
}
int
main()
{
            
size_t
i;
            
for
(i = 0;i != 10;++i)
            {
                cout<<add(i)<<endl;
            }
   
return
0;
}

笔记:C++学习之旅---try语句和异常处理的更多相关文章

  1. WCF学习之旅—基于ServiceDebug的异常处理(十七)

    WCF学习之旅—WCF中传统的异常处理(十六) 二.基于ServiceDebug的异常处理 从前面的示例中,可以看到客户端捕获了异常,这是我们处理异常的前提.为了有利于我们进行有效的调试,WCF提供了 ...

  2. 笔记-JavaWeb学习之旅5

    CP30的演示 package cn.itcast.datasourcejdbc; import com.mchange.v2.c3p0.ComboPooledDataSource; import j ...

  3. 笔记-JavaWeb学习之旅14

    JSTL:JavaServer Pages Tag Library JSP标准标签库 if标签 <%@ page import="java.util.ArrayList" % ...

  4. 笔记-JavaWeb学习之旅10

    Servlet server applet运行在服务器端的小程序,servlet就是一个接口,定义了Java类被浏览器访问到的规则(Java类重写这个接口,就可以被浏览器(tomcat)识别) Ser ...

  5. 笔记-JavaWeb学习之旅7

    JavaScript基础 概念:一门客户端脚本语言,运行在客户端浏览器中,每一个浏览器都有JavaScript的解析引擎,是一个脚本语言,不需要编译,直接就可以被浏览器解析执行. JavaScript ...

  6. 笔记-JavaWeb学习之旅3

    数据库的设计 1.多表之间的关系 一对一 一对一关系实现,可以在任意一方添加唯一外键指向另一方的主键 一对多 在多的一方建立外键指向一的一方建立主键 多对多 多对多关系实现需要借助第三张中间表.中间表 ...

  7. 笔记-JavaWeb学习之旅2

    数据库的基本概念 1.数据库:DataBase 简称 DB,用于存储和管理数据的仓库 特点: 1.持久化存储数据的,其实数据库就是一个文件系统, 2.方便存储和管理数据 3.使用了统一操作数据库 -- ...

  8. 笔记-JavaWeb学习之旅19

    Redis:redis是一款高性能的NOSQL系列的非关系型数据库 NOSQL: Not Only SQL ,意即"不仅仅是SQL",是一项全新的数据库理念,泛指非关系型数据库 r ...

  9. 笔记-JavaWeb学习之旅18

    AJAX:ASynchronous JavaScript And XML 异步的JavaScript 和XML 异步和同步:客户端和服务器端相互通信的基础上 同步:客户端操作后必须等待服务器端的响应, ...

  10. 笔记-JavaWeb学习之旅17

    1.过滤选择器 首元素选择器:first 获得选择的元素中的第一个元素 尾元素选择器:last获得选择元素中的最后一个元素 非元素选择器:not(selector) 不包括指定内容的元素 偶数选择器: ...

随机推荐

  1. Leecode 88.合并两个有序数组

      想法: 1:先把nums2中的所有元素都放到nums1,之后给合并后的数组排序 1 官方代码: 2 class Solution { 3 public void merge(int[] nums1 ...

  2. mysql5.7_win64位安装

    1.下载MySQL压缩包解压缩 2.更改my.ini配置文件 [mysqld] #设置3306端口号 port=3306 #设置MySQL的安装目录 basedir=F:\\JavaSoftware\ ...

  3. 全新TI AM62xx系列核心板上市,小小身板蕴藏巨大势能!

    2011年TI推出AM335x,成为了此后市场上最受欢迎的通用工业级ARM处理器,并广泛应用于工业HMI, 医疗电子,机器人,能源,汽车等领域.随着工业4.0的发展,HMI人机交互.工业工控.医疗等领 ...

  4. 搬运工 - Appium Python API 中文版

    Appium_Python_Api文档 1.contextscontexts(self): Returns the contexts within the current session. 返回当前会 ...

  5. Python项目案例开发从入门到实战-1.3 Python面向对象设计

    1.3.1定义于使用类 类的定义 class class_name: attribute function 例: class Person: age=18 def say(): print(" ...

  6. 1.1 [zabbix5.4]-部署

    一.从容器安装 1.0 官网 https://www.zabbix.com/documentation/5.0/zh/manual/installation/containers   # 官方文档 h ...

  7. ECharts连接数据库的具体实现

    相关描述 我们由之前的实例可以得知,要是不连接数据库的话,只是需要套用一下ECharts的相关模板即可,这部分内容我在前几篇中已经叙述过了: 现在,我们需要实现的是,将数据库里面的数据导入到web网页 ...

  8. jsp页面中的正则表达式--主要用于js判断文本格式

    一.方括号[] 举例: 二.^ 三.元字符 举例的话,就可以这么说,要实现要表示整数的话: []就表示输入的文本框里面的数字的第一位,可以这么写--->[1-9] 然后已知\d表示的与[0-9] ...

  9. ngix安装与使用

    主要是nginx的安装使用, 至于原理 1. 安装nginx(以及两个tomcat) 2. 使用nginx(测试负载均衡) 想要搭建的测试环境, 1.两个tomcat, 端口分别是80和8090(因为 ...

  10. 使用 GVM 搭建可维护的 Golang 开发环境

    当你想完成 Golang 开发环境的便捷安装以及随时更新和保障多个版本的 Golang 共存的时候,就需要使用到 Golang 的专门版本管理工具 --gvm 本篇随笔记录了在 Ubuntu 下安装使 ...