c++学习笔记二十二——捕获处理异常

c++中有一些的异常处理是不可避免的,c++中 throw try catch 是三个专门处理异常的函数。我将用自己的语言简单的介绍如何使用这三个函数。

throw //抛出异常,后面可以很整型 浮点型等等 该函数的抛出的异常可被catch捕捉到
try{
......}//里面执行你认为可能出现异常的语句,当出现异常以后,抛出异常
catch(int a){} //捕获异常,当执行前面语句抛出的类型与()内类型一致则执行{}内语句

以上要注意的是
1)如果 try 语句内无异常则不执行catch语句段
2)若未找到抛出的类型,则默认会终止程序
3)若异常的抛出点本身在 try语句段内,则抛出异常后在捕获到异常后不会执行抛出点后面的语句

下面举几个简单的例子

#include<iostream>
using namespace std;
int main(){
    cout<<"1--befroe try block..."<<endl;
    try{
        cout<<"2--Inside try block..."<<endl;
        throw 10;
        cout<<"3--After throw ...."<<endl;
    }
    catch(int i) {
	    cout<<"4--In catch block1 ... exception..errcode  is.."<<i<<endl;
    }
    catch(char * s) {
        cout<<"5--In catch block2 ... exception..errcode is.."<<s<<endl;
    }
    cout<<"6--After Catch...";
    system("pause");
}

以上这个例子就会输出
2–Inside try block…
4–In catch block1 … exception…errcode is… 10
6–After Catch…

下面将异常与读写文件结合起来

# include<iostream>
# include<fstream>
using namespace std;
void writetxt(int a)
{
ofstream ruitxt("../pratice.txt",ios::app);
if(a==1)
throw 0;
else
{
ruitxt << "this is a test" << endl;
ruitxt.close();
}
}
int main()
{ 
    try{
    writetxt(1);
}

    catch (int a)
    {
        cout << "error  write" << endl;
        return 1;
    }
cout << "success" << endl;

}

运行结果如下:
在这里插入图片描述
若将更改为除1以外的其他数字,会建立对应的txt,并在里面输入内容。

经过一段时间的学习,c++基础内容将告一段落,下一阶段将进行 c++源码库分析。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值