zoukankan      html  css  js  c++  java
  • 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

     

  • 相关阅读:
    bzoj 1057: [ZJOI2007]棋盘制作
    【NOIP2012】开车旅行
    bzoj 2326: [HNOI2011]数学作业
    一本通1527欧拉回路
    一本通1530 Ant Trip
    一本通1528单词游戏
    luogu1856
    CF1045G
    10.18模拟赛
    10.16模拟赛
  • 原文地址:https://www.cnblogs.com/uhanhi/p/12963699.html
Copyright © 2011-2022 走看看