C++异常层次结构
#define _CRT_SECURE_NO_WARNINGS
#include <iostream> using namespace std; class MyArray
{
public:
MyArray(int len);
~MyArray(); public:
int & operator[](int index);
int getlen(); public:
class eSize
{
public:
eSize(int len)
{
size = len;
}
virtual void printfErr()
{
cout << "size:" << size <<endl;
}
protected:
int size;
private:
}; class eNegative : public eSize
{
public:
eNegative(int size):eSize(size)
{
;
}
virtual void printfErr()
{
cout << "eNegative 异常 size:" << size << endl;
}
protected:
private:
};
class eZero : public eSize
{
public:
eZero(int size):eSize(size)
{
;
}
virtual void printfErr()
{
cout << "eZero 异常 size:" << size << endl;
}
protected:
private:
};
class eTooBig : public eSize
{
public:
eTooBig(int size):eSize(size)
{
;
}
virtual void printfErr()
{
cout << "eTooBig 异常 size:" << size << endl;
}
protected:
private:
};
class eTooSmall : public eSize
{
public:
eTooSmall(int size):eSize(size)
{
;
}
virtual void printfErr()
{
cout << "eTooSmall 异常 size:" << size << endl;
}
protected:
private:
}; protected:
private:
int *m_space;
int m_len;
}; MyArray::MyArray(int len)
{
if (len < )
{
throw eNegative(len);
}
else if (len == )
{
throw eZero(len);
}
else if (len > )
{
throw eTooBig(len);
}
else if (len < )
{
throw eTooSmall(len);
} m_len = len;
m_space = new int[len];
} MyArray::~MyArray()
{
if (m_space != NULL)
{
delete[]m_space;
m_space = NULL;
m_len = ;
} }
int& MyArray::operator[](int index)
{
return m_space[index];
}
int MyArray::getlen()
{
return m_len;
} int main(void)
{
try
{
MyArray a();
for (int i=; i<a.getlen(); i++)
{
a[i] = i+;
printf("%d ", a[i]);
}
}
catch (MyArray::eSize& e)
{
e.printfErr();
} catch (...)
{
;
} cout << "Hello World!" << endl;
system("pause");
return ;
}
C++异常层次结构的更多相关文章
- Java如何处理异常层次结构?
在Java编程中,如何处理异常层次结构? 以下是异常层次结构的示例图 - 此示例显示如何通过扩展Exception类来处理异常层次结构. package com.yiibai; class Anima ...
- Java异常层次结构
1. 如果是不可查异常(unchecked exception),即Error.RuntimeException或它们的子类,那么可以不使用throws关键字来声明要抛出的异常,编译仍能顺利通过,但在 ...
- Spring事务管理只对出现运行期异常进行回滚
原文:http://blog.csdn.net/abc19900828/article/details/39497631 使用spring难免要用到spring的事务管理,要用事务管理又会很自然的选择 ...
- Java系列:《Java核心技术 卷一》学习笔记,cchapter11 异常
11.1.1 异常分类 如果一个程序出现了RuntimeException,那么就一定是你的问题. 11.1.2 声明已检测异常 如果子类覆盖了父类的一个方法,那么子类方法中声明的检查 ...
- Java异常之try,catch,finally,throw,throws
Java异常之try,catch,finally,throw,throws 你能区分异常和错误吗? 我们每天上班,正常情况下可能30分钟就能到达.但是由于车多,人多,道路拥挤,致使我们要花费更多地时间 ...
- [core java学习笔记][第十一章异常断言日志调试]
第11章 异常,断言,日志,调试 处理错误 捕获异常 使用异常机制的技巧 使用断言 日志 测试技巧 GUI程序排错技巧 使用调试器 11.1 处理错误 11.1.1异常分类 都继承自Throwable ...
- Java 异常分类
1.java异常层次结构: 粉红色的是已检查异常(checked exceptions),其必须被 try{}catch语句块所捕获,或者在方法签名里通过throws子句声明.已检查异常必须在编译时被 ...
- 全面理解java异常机制
在理想状态下,程序会按照我们预想的步骤一步一步的执行,但是即使你是大V,你也不可避免出错,所以java为我们提供了异常机制.本文将会从以下几个方面介绍java中的异常机制: 异常机制的层次结构 异常的 ...
- Java基础语法<十一> 异常 断言 日志 调试
1 处理错误 1.1 异常分类 Error类层次描述了Java运行时系统的内部错误和资源耗尽错误. 设计Java程序时,主要关注Exception层次结构. 由程序错误导致的异常属于RuntimeEx ...
随机推荐
- JavaScript Array 对象方法 以及 如何区分javascript中的toString()、toLocaleString()、valueOf()方法
1.concat() 2.join() 3.pop() 4.push() 5.reverse() 6.shift() 7.unshift() 8.slice() 9.sort() 10.splice( ...
- PHP重要知识点
1 获取文件名或目录路径 getcwd() :显示是 在哪个文件里调用此文件 的目录 __DIR__ :当前内容写在哪个文件就显示这个文件目录 __FILE__ : 当前内容写在哪个文件就显示这个文件 ...
- Android动画(一)-视图动画与帧动画
项目中好久没用过动画了,所以关于动画的知识都忘光了.知识总是不用则忘.正好最近的版本要添加比较炫酷的动画效果,所以也借着这个机会,写博客来整理和总结关于动画的一些知识.也方便自己今后的查阅. Andr ...
- dotnet core 自定义配置文件
首先添加一个.json 文件,比如 setting.json 文件内容如下,记得把文件设置为“复制到输出目录” { "ConfigSetting": { "XXXName ...
- 【转载】MySQL事务以及SELECT ... FOR UPDATE的使用
MySQL中的事务,默认是自动提交的,即autocommit = 1: 但是这样的话,在某些情形中就会出现问题:比如: 如果你想一次性插入了1000条数据,mysql会commit1000次的, 如果 ...
- 巧用CSS实现宝马LOGO
某天突然遇到一个有趣的面试题,需用CSS实现一个宝马的Logo,第一反应就是这不是老生常谈的八卦图的小变形吗,只需用伪元素就可轻易的实现啦,但是细看要求说只能在一个标签里写样式,所以呜呜呜...请教下 ...
- 命令行替代工具 - Cmder配置
Cmder 可搭配使用cmd here ( cmdhere.reg ) 1. 修改config\aliases文件:添加下列几行 l=ls --show-control-chars la=ls - ...
- 移动端web总结
viewport 通用模版: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> ...
- 深度解剖dubbo源码
-----------学习dubbo源码,能给你带来什么好处?----------- 1.提升SOA的微服务架构设计能力 通过读dubbo源码是一条非常不错的通往SOA架构设计之路,毕竟SOA的服 ...
- Inno Setup 自定义界面心得
因为项目需要,需要打 windows 安装包,要求安装界面完全按照需求来.作为没接触过这块儿的服务端宝宝,在此期间踩了很多坑. 坑不提也罢,最终结果圆满,记录下与大部分网上PO出来的做法不太一样的小心 ...