C/C++ 异常处理

C

C++

 1 #include<iostream>
 2 # include<exception>
 3 using namespace std;
 4 
 5 int abc(int a, int b, int c){
 6     if(a <= 0 || b <= 0 || c <= 0)
 7         throw "abc can`t be 0"; // 抛出abc不能等于0的异常 
 8     return a + b + c;
 9 }
10 /* 
11 int abc(float a, float b, float c){
12     return a * b * c;
13 }
14 */ 
15 double abc(double a, double b, double c){
16     double result = a * b * c;
17     cout << result << endl;
18     return result;
19 }
20 int main(){
21     try{
22         cout << abc(1, 2, 0) << endl;
23     }
24     
25     catch(const char *e){ //  const 是关键的,如果没有const,达不到预期效果 
26         cout << e << endl;
27     }
28     
29     return 0;
30 } 

  如果throw没有用try语句进行捕获,throw语句结束后,抛出异常的函数继续执行。

  try和catch语句的内容必须由大括号“{}”括起,即使只有一条语句。因为大括号内相当于一个区域,故在try中定义的变量为try区域的临时变量,catch区域无法访问。

结果:

第25行,如果没有const

 

 

posted @ 2020-05-26 09:57  阿傥  阅读(132)  评论(0编辑  收藏  举报