#include <iostream> using namespace std; double div(const double source,const double destination) { if(destination == 0) throw 1; return source/destination; } int length(char *arr) { int count=0; for(int i=0;arr[i]!='/0';i++) count++; return count; } char array(char *arr,int i) { if(i>=length(arr)) throw 1.0; return arr[i]; } void main() { double a,b; char *arr = new char(10); for(int i=0;i<10;i++) arr[i]='a'+i; cout<<"please enter two numbers:"; cin>>a>>b; while(true) { try { cout<<div(a,b)<<endl; for(int j=0;j<=10;j++) cout<<array(arr,j)<<endl; return; }catch(int) { cout<<"iVALID!please enter agian:"; cin>>a>>b; }catch(double) { cout<<"you are accessing Ivalid array!"<<endl; return; } } } 看了c++标准程序库里的异常的东西,写了个小程序,处理被0除和数组越界异常。 <在此要谢谢tuwen的文章!>