<i id="whxwp"><option id="whxwp"><listing id="whxwp"></listing></option></i>
    <i id="whxwp"><option id="whxwp"><listing id="whxwp"></listing></option></i>

    <i id="whxwp"><option id="whxwp"></option></i>

    <delect id="whxwp"><rp id="whxwp"><big id="whxwp"></big></rp></delect>

      <i id="whxwp"><option id="whxwp"><listing id="whxwp"></listing></option></i>

      <i id="whxwp"><option id="whxwp"><listing id="whxwp"></listing></option></i>

        c++异常处理的方法

        分享图片 

        c++异常处理

        程序运行时常会碰到一些异常情况,例如:做除法的时候除数为 0;用户输入年龄时输入了一个负数;用 new 运算符动态分配空间时,空间不够导致无法分配;访问数组元素时,下标越界;打开文件读取时,文件不存在等等。

        这些异常情况,如果不能发现并加以处理,很可能会导致程序崩溃。

        所谓“处理”,可以是给出错误提示信息,然后让程序沿一条不会出错的路径继续执行;也可能是不得不结束程序,但在结束前做一些必要的工作,如将内存中的数据写入文件、关闭打开的文件、释放动态分配的内存空间等。

        C++ 引入了异常处理机制。其基本思想是:函数 A 在执行过程中发现异常时可以不加处理,而只是“拋出一个异常”给 A 的调用者,假定为函数 B。

        拋出异常而不加处理会导致函数 A 立即中止,在这种情况下,函数 B 可以选择捕获 A 拋出的异常进行处理,也可以选择置之不理。如果置之不理,这个异常就会被拋给 B 的调用者,以此类推。

        如果一层层的函数都不处理异常,异常最终会被拋给最外层的 main 函数。main 函数应该处理异常。如果main函数也不处理异常,那么程序就会立即异常地中止。

        C++异常处理基本语法

        C++ 通过 throw 语句和 try...catch 语句实现对异常的处理。throw 语句的语法如下:

         分享图片 

        该语句拋出一个异常。异常是一个表达式,其值的类型可以是基本类型,也可以是类。

         分享图片 

        catch 可以有多个,但至少要有一个。

        不妨把 try 和其后{}中的内容称作“try块”,把 catch 和其后{}中的内容称作“catch块”

        try...catch 语句的执行过程是:执行 try 块中的语句,如果执行的过程中没有异常拋出,那么执行完后就执行最后一个 catch 块后面的语句,所有 catch 块中的语句都不会被执行;如果 try 块执行的过程中拋出了异常,那么拋出异常后立即跳转到第一个“异常类型”和拋出的异常类型匹配的 catch 块中执行(称作异常被该 catch 块“捕获”),执行完后再跳转到最后一个 catch 块后面继续执行。

        例如下面的程序:

         分享图片

         程序的运行结果如下:

         分享图片

         

        说明当 n 不为 0 时,try 块中不会拋出异常。因此程序在 try 块正常执行完后,越过所有的 catch 块继续执行,catch 块一个也不会执行。

        程序的运行结果也可能如下:

         分享图片

         

        当 n 为 0 时,try 块中会拋出一个整型异常。拋出异常后,try 块立即停止执行。该整型异常会被类型匹配的第一个 catch 块捕获,即进入catch(int e)块执行,该 catch 块执行完毕后,程序继续往后执行,直到正常结束。

        如果拋出的异常没有被 catch 块捕获,例如,将catch(int e),改为catch(char e),当输入的 n 为 0 时,拋出的整型异常就没有 catch 块能捕获,这个异常也就得不到处理,那么程序就会立即中止,try...catch 后面的内容都不会被执行。

        以上就是c++异常处理的方法的详细内容

        相关文章
        相关标签/搜索
        三期內必开一肖 江川县| 晋中市| 阿瓦提县| 黔西县| 饶阳县| 玉屏| 耒阳市| 隆子县| 靖西县| 辉县市| 易门县| 公安县| 隆子县| 开远市| 新干县| 左云县| 望奎县| 乌什县| 泉州市| 白朗县| 广州市| 巩留县| 社会| 凤城市| 乌鲁木齐县| 南宁市| 绿春县| 沙坪坝区| 新乡县| 淄博市| 册亨县| 龙江县| 南溪县| 招远市| 工布江达县| 抚宁县| 东台市| 天峻县| 洛川县| 大港区| 绥滨县| 阜宁县| 化隆| 瑞昌市| 乳源| 花垣县| 溧阳市| 禄劝| 荆门市| 大名县| 大庆市| 漯河市| 九江市| 长沙县| 蒙阴县| 宁南县| 天峻县| 峨眉山市| 法库县| 彝良县| 灵石县| 康乐县| 彝良县| 肇州县| 隆昌县| 拉孜县| 阿拉善右旗| 南漳县| 高安市| 和硕县| 南部县| 增城市| 常州市| 台北市| 珲春市| 曲麻莱县| 自治县| 林口县| 上林县| 义乌市| 平阴县| 黔东| 龙陵县| 合山市| 马龙县| 新疆| 四子王旗| 遵义市| 当阳市| 武安市| 昌图县| 北碚区| 海淀区| 托克逊县| 潼南县| 绥德县| 呈贡县| 永德县| 乐业县| 新郑市| 郴州市| 宝坻区| 南岸区| 台湾省| 陆河县| 遂宁市| 西吉县| 马边| 尚志市| 陈巴尔虎旗| 蒙城县| 临清市| 杭州市| 博湖县| 迁安市| 察隅县| 鞍山市| 彭泽县| 察雅县| 西丰县| 呼伦贝尔市| 保亭| 铁岭市| 茂名市| 桑日县| 江城| 陇西县| 宁海县| 孟州市| 枣阳市| 太仆寺旗| 温泉县| 莱阳市| 历史| 陆河县| 托里县| 阿勒泰市| 朝阳县| 德兴市| 尤溪县| 故城县| 宜兰县| 巫山县| 鄱阳县| 屏东县| 大英县| 启东市| 于都县| 华阴市| 枣庄市| 广汉市| 尚义县| 巴青县| 神池县| 卢湾区| 永城市| 晋城| 博客| 轮台县| 兴文县| 临清市| 永寿县| 乐平市| 台湾省| 宝山区| 克山县| 九龙县| 中西区| 肃南| 屯昌县| 唐河县| 襄樊市| 信阳市| 浮梁县| 盖州市| 七台河市| 宣恩县| 乌海市| 富源县| 瑞金市| 策勒县| 连江县| 巫山县| 濉溪县| 花莲县| 历史| 永嘉县| 包头市| 鄂尔多斯市| 濉溪县| 离岛区| 云安县| 美姑县| 哈尔滨市| 文山县| 康平县| 茂名市| 焉耆| 格尔木市| 开原市| 邵东县| 商洛市| 宣恩县| 上蔡县| 连云港市| 灵石县| 洞口县| 汉沽区| 大港区| 陆河县| 绥中县| 芷江| 宜城市| 澄城县| 宁德市| 夏河县| 德惠市| 富裕县| 英超| 武山县| 榆社县| 防城港市| 毕节市| 郓城县| 吴堡县| 连城县| 玛多县| 宜兴市| 罗田县| 吴川市| 武夷山市| 额敏县| 西城区| 旌德县| 梨树县| 织金县| 湄潭县| 雅江县| 沈丘县| 偃师市| 武邑县| 增城市| 富裕县| 刚察县| 教育| 厦门市| 临沭县| 孝昌县| 广安市| 庆阳市| 阿合奇县| 茂名市| 筠连县| 郯城县| 桦甸市| 庆城县| 青田县| 伊宁市| 如皋市| 祁连县| 廊坊市| 安徽省| 长寿区| 临洮县| 岚皋县| 石首市| 阿巴嘎旗| 广元市| 汉中市| 和平县| 乌兰浩特市| 运城市| 修水县| 清苑县| 大埔县| 保定市| 兖州市| 永嘉县| 阳新县| 华蓥市| 富宁县| 南充市| 阜阳市| 泾川县| 定安县| 湖州市| 通渭县| 毕节市| 桐城市| 隆化县| 抚松县| 湄潭县| 弥渡县| 来凤县| 鹿邑县| 利津县| 钟山县| 白河县| 三亚市| 来凤县| 开化县| 壶关县| 库尔勒市| 建始县| 青州市| 万安县| 张掖市| 日喀则市| 灌云县| 乌拉特后旗| 天台县| 山东| 神农架林区| 桃园市| 阜新| 蒙阴县| 如皋市| 庄河市| 边坝县| 盐源县| 遂溪县| 文山县| 彭水| 石屏县| 依安县| 淮南市| 文成县| 文成县| 黄山市| 荣成市| 平顶山市| 九龙城区| 大悟县| 万安县| 富阳市| 雅江县| 交口县| 焦作市| 体育| 和硕县| 同江市| 福鼎市| 安阳市| 新建县| 睢宁县| 河津市| 米泉市| 沿河| 南涧| 乌苏市| 阆中市| 关岭| 墨江| 姚安县| 耿马| 仁怀市| 荥经县| 中宁县| 永登县| 阿拉尔市| 大渡口区| 乌拉特前旗| 汤原县| 军事| 武定县| 城市| 天长市| 新乐市| 会昌县| 鄢陵县| 民和| 贵阳市| 博乐市| 玉田县| 石狮市| 龙口市| 枣阳市| 兴和县| 辽阳市| 科技| 衡水市| 阿克陶县| 高青县| 塔河县| 东乡族自治县| 青神县| 民县| 祁门县| 武威市| 浦东新区| 六枝特区| 疏勒县| 收藏| 临清市| 德清县| 无锡市| 伽师县| 商城县| 时尚| 梁山县| 绥中县| 黄平县| 余姚市| 玛多县| 齐齐哈尔市| 镇远县| 淮阳县| 富平县| 南投市| 繁昌县| 和田县| 隆子县| 祥云县| 屯昌县| 东莞市| 儋州市| 九江县| 新沂市| 达州市| 辉南县| 盖州市| 荆州市| 离岛区| 黔江区| 桂平市| 清河县| 天峨县| 安义县| 许昌市| 牡丹江市| 尼勒克县| 内黄县| 微山县| 时尚| 大余县| 友谊县| 通海县| 盘锦市| 彭州市| 环江| 关岭| 岱山县| 宁国市| 青神县| 仲巴县| 普安县| 西峡县| 祥云县| 谢通门县| 内乡县| 桐庐县| 扎囊县| 庆安县| 孝感市| 武胜县| 嘉义市| 哈尔滨市| 金堂县| 明光市| 镇平县| 灵川县| 高台县| 朔州市| 彭阳县| 大方县| 上林县| 化州市| 永兴县| 明水县| 鹤庆县| 桦川县| 黔西县| 容城县| 杨浦区| 乌兰浩特市| 永川市| 潜江市| 金堂县| 苍溪县| 临澧县| 双鸭山市| 本溪市| 特克斯县| 成都市| 内黄县| 高尔夫| 获嘉县| 翁牛特旗| 凤庆县| 宜君县| 白城市| 思南县| 和平区| 新绛县| 镇江市| 吉安市| 博爱县| 自治县| 什邡市| 策勒县| 荥经县| 青田县| 沿河| 松溪县| 淳化县| 乌兰浩特市| 紫阳县| 兴安盟| 昌图县| 上思县| http://bbs.jp1860castleo.fun http://wap.jp1860budgeto.fun http://3g.jp1860coolo.fun http://3g.jp1860guideo.fun http://3g.jp1860lasto.fun http://3g.jp1860existo.fun http://3g.jp1860distanceo.fun http://3g.jp1860zano.fun http://3g.jp1860concreteo.fun http://3g.jp1860charo.fun http://wap.jp1860roundo.fun http://wap.jp1860kido.fun http://m.jp1860tapeo.fun http://m.jp1860factoro.fun http://m.jp1860advantageo.fun