自定义C++异常处理

2023-10-29

例1:自定义一个继承自excepton的异常类myException

C++标准中,定义在<stdexcept>中的任何异常类都派生自exception Class,本例也只是简单地由exception继承,在try段抛出一个异常并捕捉。代码如下:

/*++ test.cpp
version:1.0
decript:define a exception class named myException
		derived from base class exception
		which is declared in <exception>
created:2011-08-14
author:	btwsmile
--*/
#include<exception>
#include<iostream>
using namespace std;

//customized exception class 'myException'
class myException:public exception
{
public:
	myException():exception("ERROR! Don't divide a number by integer zero.\n")
	{
	}
};
//entry of the application
int main()
{
	int x=100,y=0;
	try
	{
		if(y==0) throw myException();
		else cout<<x/y;
	}
	catch(myException& me)
	{
		cout<<me.what();
	}
	system("pause");
	return 0;
}

结果如下:
ERROR! Don't divide a number by integer zero.
请按任意键继续. . .                                                  

显然,异常被捕捉到了。此处需要说明的是,VC对异常处理类exception进行了扩展,本例之所以能够使用exception("ERROR!....")的初始化方法正出于这样的原因,C++标准是不允许这样做的。

与此同时,VC又没有遵循标准,有力地支持terminate和unexpected,它只保留了语法,却在编译运行时不提供支持。为了结合terminate和unexpected更加深入了解C++的异常处理,下面的例子采用Dev cpp IDE实现。

例2:依照C++标准实现自定义异常类myException并将throw语句封装到函数check()中

涉及到的更改正如标题所述,(1

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

自定义C++异常处理 的相关文章

随机推荐

  • 计算机专业毕业设计选题原则

    计算机技术变化很快 新技术新观念每年都会涌现很多 计算机专业的毕业设计 是一次非常好的把理论知识结合实践的好机会 所以 选好自己的毕业设计题目 相当重要 我们建议 你要结合自己的职业理想来做 1 如果你将来想从事信息系统类开发 建议选择C
  • SpringBoot项目整合RabbitMQ

    1 简介 消息队列 Message Queue 是分布式系统中常用的组件 它允许不同的应用程序之间通过发送和接收消息进行通信 Spring Boot提供了简单且强大的方式来整合消息队列 其中包括RabbitMQ ActiveMQ Kafka
  • openwrt控制天翼网关定时重启

    由于天翼网关不支持定时重启 另外app里设置定时重启也没有作用 所以查找了一些相关工具和用法 再结合前辈的经验 参考的博客网址 自己最终把该功能实现了 首先需要用winscp登陆到刷了openwrt的路由器中 然后在 usr bin 目录下
  • CC2530学习(一)环境配置

    CC2530F256是一款将各种丰富的功能系统地集成到一片LSI Large Scale Integrated circuit 大规模集成电路 的片上系统 System on Chip 简称SoC 内嵌增强型51内核的单片机 芯片后缀256
  • docker安装redis(镜像安装)

    目录 安装 1 1 安装redis镜像 2 查看redis镜像 3 运行容器 4 查看容器安装成功 安装2 1 安装redis镜像 其中latest是镜像版本 根据程序需要 选择适合的版本 2 新建data和conf两个文件夹 位置随意 3
  • frida native hook简单demo

    记录frida hook native的笔记 整体代码如下 Java perform function console log Inside java perform function function jstring2Str jstrin
  • Basic Level 1027 打印沙漏 (20分)

    题目 本题要求你写个程序把给定的符号打印成沙漏的形状 例如给定17个 要求按下列格式打印 所谓 沙漏形状 是指每行输出奇数个符号 各行符号中心对齐 相邻两行符号数差2 符号数先从大到小顺序递减到1 再从小到大顺序递增 首尾符号数相等 给定任
  • pacmaker与corosync实现高可用集群

    一 pacmaker与corosync的简单介绍 1 pacmaker pacemaker是一个开源的高可用资源管理器 CRM 位于HA集群架构中资源管理 资源代理 RA 这个层次 它不能提供底层心跳信息传递的功能 要想与对方节点通信需要借
  • gtest学习笔记(二)gtest自带的sample1---Func函数使用

    文章目录 前言 源码学习 utest语法 运行 前言 第一章中已经编译出自带的sample例子 在build googletest目录下可以看到sample的各种例子的可执行程序 Google Test 附带了10个单元测试用例 难度由浅及
  • Android logcat解析与问题分析

    logcat是Android中一个命令行工具 可以用于得到程序的log信息 一 logcat 结构 1 这个结构在AS或者exlipse上面看的更清楚 二 logcat中地址反差backtrace 当程序崩溃的时候会在loacat中打印出b
  • 最左前缀原则、覆盖索引、索引下推、联合索引的概念

    最左前缀原则 什么是最左匹配原则 举个例子 比如有abc组成的联合索引 能走的索引可以是a ab abc 不能是bc这样的 如果条件上先b后c 那么就是全表查询 不走索引了 可以使联合索引的最左边的N个字段 也可以是字符串的前m个字符 覆盖
  • 用matlab写一段时间序列预测

    我可以为你提供一些指引 但具体的实现方法还需要你自己去探索 首先 你可以使用Matlab的时间序列函数来分析数据 从而找出特征 这些特征可以帮助预测未来的数据 其次 你可以使用一些机器学习技术 如回归分析 贝叶斯网络和神经网络 来构建时间序
  • 06_在机器学习中,为什么使用均方误差而不使用绝对值误差

    问题背景 为什么机器学习在解决回归问题的时候一般使用的是平方损失 均方损失 问题分析 损失函数是衡量模型预测结果与真实结果之间的一种距离度量 可以计算出每一个样本预测值与其真实值之间的距离 全部加起来就得到了所谓的损失函数 而距离的度量是没
  • ORACLE触发器详解

    本文对原文做了格式和目录调整方便阅读 文章总结的很全面 感谢原作的辛勤付出 原文链接 http www cnblogs com huyong archive 2011 04 27 2030466 html comments ORACLE P
  • 华为交换机怎么查看接口流量

    今天我们整理了华为交换机的监控命令 其中比较重要的几个命令我记一下 也方便能看到这篇文章的同学 首先得ssh登录到设备终端或者用sshpass命令 display current configuration 显示当前配置 display i
  • 输入10个数,求它们的平均值,并输出大于平均值的数据的个数

    题目描述 输入10个数 求它们的平均值 并输出大于平均值的数据的个数 输入 10个数 输出 大于平均数的个数 样例输入 1 2 3 4 5 6 7 8 9 10 样例输出 5 include
  • mqtt协议调用示例(包括MQTT一键启动服务+测试工具 MQTTFX云盘下载),对捷顺门禁温感一体机进行人员信息下发

    hello 大家好 我是一只不是在戏精 就是在戏精路上的极品二哈 新年上班第一天 给大家贡献一篇 MQTT 协议使用示例文章 也是本汪自己的一篇实用笔记 本汪先总的说下 MQTT协议进行数据交互 一共有两种方式 第一种 请求时不带任何参数的
  • Spring Boot v2.4.4源码解析(八)依赖注入原理上 —— 由一道面试题引起的思考《@Autowired和@Resource的区别》?

    Autowired 和 Resource 属性注入分别是由 AutowiredAnnotationBeanPostProcessor 和 CommonAnnotationBeanPostProcessor 处理 本文将从源码出发 解析这两种
  • dns服务器未响应和欠费,dns服务器未响应【操作方向】

    虽然电脑已经很普遍了 但是一些年长的人对电脑的操作不是很熟悉 比如在使用win7系统时一旦遇到dns服务器未响应 时就懵了 对于dns服务器未响应 处理起来相对来说较简单 按照我们的步骤处理dns服务器未响应 很容易上手 dns服务器未响应
  • 自定义C++异常处理

    例1 自定义一个继承自excepton的异常类myException C 标准中 定义在