C++——try、throw、catch实例学习程序[通俗易懂]

C++——try、throw、catch实例学习程序

大家好,又见面了,我是全栈君。

#include<iostream>
#include<stdexcept>
//exception/stdexcept/new/type_info头文件里都有定义的标准异常类
using namespace std;
int main()
{
      try{
            int a,b;    char s;
            cin>>a>>s>>b;
            if(s=='/'){
                  if(b==0)  throw "Divided by 0!";
                  cout<<a<<"/"<<b<<"="<<a/b<<endl;
            }
            else
                  if(s=='%') {   
                        if(b==0)      throw a;
                        cout<<a<<"%"<<b<<"="<<a%b<<endl;
                  }
                  else
                        cout<<"Option must be % or /."<<endl;
      }//try
      //捕获int类型的异常并处理
      catch(int i)  {       cout<<"Error occur:"<<i<<"%0"<<endl;  }
      //捕获char* 类型的异常并处理
      catch(char *str) {cout<<"Error occur:"<<str<<endl;  }
      catch(runtime_error err){ cout<<err.what()<<endl;}
      //捕获其他不论什么异常并处理
      catch(...){cout<<"Unkown Error"<<endl;}
      //没错误不执行catch。有错误至多执行一个catch语句块,且不再返回try语句块中。
      //无论有无异常都要执行到此处
      cout<<"Hello world"<<endl;
      return 0;
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/115736.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • linux中设置固定ip(亲测有效)[通俗易懂]

    linux中设置固定ip(亲测有效)[通俗易懂]首先打开虚拟机  打开xshell5连接虚拟机(比较方便,这里默认设置过Linux的ip,只是不固定)输入ifconfig,可以查看网管相关配置信息:然后输入  vi/etc/sysconfig/network-scripts/ifcfg-ens33命令。修改网卡配置文件按i键进行编辑。修改入下,原有的配置不要删,只要按下面修改就好。没有的配置项新增上去就…

  • 多重比较法-LSD[通俗易懂]

    多重比较法-LSD[通俗易懂]总第174篇/张俊红前面我们讲了方差分析,方差分析主要是用于多组均值比较的,方差分析的结果是多组均值之间是否有显著性差异,但是这个显著性差异是整体的显著性差异,可是我们并…

  • C++ 中的getline()函数用法详解

    C++ 中的getline()函数用法详解    遇到了要输入一行字符串的操作,我想除了fgets()的方法(fgets()用法链接),getline()也是可以的,但是我对getline的操作不熟悉,便查阅了很多资料,发现都说的很模糊,借这个机会我想彻底理清楚getline的用法;  网上有说getline有两种用法的,我在这总结一下,一、getline()用的比较多的用法 1) istrea…

  • 4g模块怎么使用_STM32库开发实战指南:基于STM32F4

    4g模块怎么使用_STM32库开发实战指南:基于STM32F4这部分一直再看,资料都已经整理好了,但是一直没有汇总。接下来就详细的看一下,GSM这部分是怎么实现的。

    2022年10月26日
  • 流数据_数据回流是什么意思

    流数据_数据回流是什么意思恢复内容开始特征:持续到达,数据量大,注重数据整体价值,数据顺序可能颠倒,丢失,实时计算,海量,分布,实时,快速部署,可靠linkedinKafkasparkstreaming:微小批

  • ehcache缓存原理_mysql缓存机制

    ehcache缓存原理_mysql缓存机制运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制 。实现 LRUCache 类:LRUCache(int capacity) 以正整数作为容量 capacity 初始化 LRU 缓存int get(int key) 如果关键字 key 存在于缓存中,则返回关键字的值,否则返回 -1 。void put(int key, int value) 如果关键字已经存在,则变更其数据值;如果关键字不存在,则插入该组「关键字-值」。当缓存容量达到上限时,它应该在写入新数据之前删除最久

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号