首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

一C++错误处理实例为何出现很多异常?求解

2012-08-11 
一C++异常处理实例为何出现很多错误?求解?#include iostreamusing namespace stdclass divzero{}class

一C++异常处理实例为何出现很多错误?求解?
#include <iostream>
using namespace std;

class divzero{};
class arrayover{};

int divide(int a,int b)
{
if(0 == b)
throw divzero();
return a/b;
}

void input(char c[],int n)
{
int i;
for(i = 0;i <= n;i++)
{
cout<<strlen(c)<<endl;
if(i > 5)
throw arrayover();
cin>>c[i];
}
}
int main()
try
{
char cc[6] = "";
input(cc,10);
  return 0;
}catch(divzero){cout<<"divide 0"<<endl;return 0;}
catch(arrayover){cout<<"arrayover"<<endl;return 0;}

[解决办法]
cout<<strlen(c)<<endl; 会越界哦。

C/C++ code
#include <iostream>using namespace std;class divzero{};class arrayover{};int divide(int a,int b){if(0 == b)throw divzero();return a/b;}void input(char c[],int n){int i;for(i = 0;i <= n;i++){cout<<strlen(c)<<endl;if(i > 5)throw arrayover();cin>>c[i];}}int main()try{char cc[6] = "";input(cc,10);  return 0;}catch(divzero){cout<<"divide 0"<<endl;return 0;}catch(arrayover){cout<<"arrayover"<<endl;return 0;}
[解决办法]
C/C++ code
#include <iostream>using namespace std;class divzero{};class arrayover{};int divide(int a,int b){if(0 == b)throw divzero();return a/b;}void input(char c[],int n){int i;for(i = 0;i <= n;i++){cout<<strlen(c)<<endl;if(i > 5)throw arrayover();cin>>c[i];}}int main(){try{char cc[6] = "";input(cc,10);  return 0;}catch(divzero){cout<<"divide 0"<<endl;return 0;}catch(arrayover){cout<<"arrayover"<<endl;return 0;}} 

热点排行
Bad Request.