异常处理:
异常处理的方式:
示例程序:
1 #include <iostream> 2 #include <string> 3 4 using namespace std; 5 6 double divide(double a, double b, int* valid) 7 { 8 const double delta = 0.000000000000001; 9 double ret = 0; 10 11 if( !((-delta < b) && (b < delta)) ) 12 { 13 ret = a / b; 14 15 *valid = 1; 16 } 17 else 18 { 19 *valid = 0; 20 } 21 22 return ret; 23 } 24 25 int main(int argc, char *argv[]) 26 { 27 int valid = 0; 28 double r = divide(1, 0, &valid); 29 30 if( valid ) 31 { 32 cout << "r = " << r << endl; 33 } 34 else 35 { 36 cout << "Divided by zero..." << endl; 37 } 38 39 return 0; 40 }
运行结果如下:
缺陷: