C++之异常处理

来源:互联网 发布:PHP可以用mvc框架么 编辑:程序博客网 时间:2024/06/02 00:26

C++异常处理方式:


C++异常处理使用了三个关键字:try,throw,catch。try-catch块的形式如下:


try{//包含可能抛出的异常的语句;}catch(类型名[形参名])//捕获特定类型的异常{//处理异常的语句;}

try    块:将有可能出现异常的语句包含在try块中

catch块:捕获并处理,捕获和处理的条件是抛出的异常类型与catch块参数类型相匹配

注意:并不是使用了try块包含可能出现异常的代码后,程序就不会崩溃,通常还需要进行两个操作:

(a)满足某个条件就显示的抛出(throw)一个异常

(b)使用catch块来匹配抛出的异常类型


//在函数进行封装时,一般使用try catch,而一般情况下很少使用,通过if判断语句进行异常处理

#include "stdafx.h"#include<stdlib.h>#include<iostream>using namespace std;void f(){int a(5);int b(0);//1.显示的抛出异常if (b == 0)throw "除数为0!";//抛出字符串//抛出异常后,下面的语句不再执行//抛出的类型是可选的,比如抛出数字 404,那么将catch()改成catch(int code),比如网页中显示错误码int c = a / b;cout << c << endl;}int main(){//f();//直接调用程序崩溃try//try块中放置有可能出现异常的代码块{ f();}catch(const char *error)//参数要和抛出的异常类型匹配,throw中抛出的是字符串{ cout << error << endl;}//catch (...)//使用...可以捕获throw抛出的任何类型的异常,有点像switch中的default////通用性最强,匹配性最差//{//cout << "所有异常均可以被捕获!"<< endl;//}system("pause");    return 0;}//catch (...)//使用...可以捕获throw抛出的任何类型的异常,有点像switch中的default////通用性最强,匹配性最差,因此通常将catch(...)放置在多个catch()捕获的最后,//作为保底的捕获方法,防止前面没有可以匹配的异常处理



0 0
原创粉丝点击