C++中的try catch语句

来源:互联网 发布:淘宝中奖客服电话 编辑:程序博客网 时间:2024/05/02 02:44
之前一直在使用C#,其中所有的可能会出现的异常操作,都有Exception来进行,本人也从未进行过深究,但是在C++中就没有这么简洁的使用方式了,只好去尝试使用最原始的解决方案,现整理代码,如下
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////文件描述:将字符串转换成数字///////////////////////////////////////////////////////////////////////////////////////////////////////////////#include<iostream>using namespace std;#define OVERFLOW -1#define ILLEGAL -2int StrtoInt( char* Str){const  char*  p=Str;int total=0;try{do{total*=10;if(*p-'0'<0||*p-'0'>9){throw ILLEGAL;}total+=*p-'0';if(total<0){throw OVERFLOW;}*p++;}while(*p);}catch(int& value){if(value==ILLEGAL){cout<<"抱歉非法输入\n";}else if(value==OVERFLOW){cout<<"抱歉,溢出错误\n";}return -1;}return total;}int main(){char str_input[100]={0};cout<<"请输入要转换的字符串\n";cin>>str_input;cout<<"转换结果是:"<<StrtoInt(str_input)<<endl;return 0;}

其实就是一个很简单的将字符串转换成数字的小程序,但是我们在编写程序的时候一定要注意程序的鲁棒性,也即在危险情况下,系统能否正常运行,也即,需要考虑到系统真正运行时可能遇到的种种问题:诸如非法输入,或者int溢出等等
0 0
原创粉丝点击