#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++异常层次结构的更多相关文章

  1. Java如何处理异常层次结构?

    在Java编程中,如何处理异常层次结构? 以下是异常层次结构的示例图 - 此示例显示如何通过扩展Exception类来处理异常层次结构. package com.yiibai; class Anima ...

  2. Java异常层次结构

    1. 如果是不可查异常(unchecked exception),即Error.RuntimeException或它们的子类,那么可以不使用throws关键字来声明要抛出的异常,编译仍能顺利通过,但在 ...

  3. Spring事务管理只对出现运行期异常进行回滚

    原文:http://blog.csdn.net/abc19900828/article/details/39497631 使用spring难免要用到spring的事务管理,要用事务管理又会很自然的选择 ...

  4. Java系列:《Java核心技术 卷一》学习笔记,cchapter11 异常

    11.1.1 异常分类     如果一个程序出现了RuntimeException,那么就一定是你的问题. 11.1.2 声明已检测异常     如果子类覆盖了父类的一个方法,那么子类方法中声明的检查 ...

  5. Java异常之try,catch,finally,throw,throws

    Java异常之try,catch,finally,throw,throws 你能区分异常和错误吗? 我们每天上班,正常情况下可能30分钟就能到达.但是由于车多,人多,道路拥挤,致使我们要花费更多地时间 ...

  6. [core java学习笔记][第十一章异常断言日志调试]

    第11章 异常,断言,日志,调试 处理错误 捕获异常 使用异常机制的技巧 使用断言 日志 测试技巧 GUI程序排错技巧 使用调试器 11.1 处理错误 11.1.1异常分类 都继承自Throwable ...

  7. Java 异常分类

    1.java异常层次结构: 粉红色的是已检查异常(checked exceptions),其必须被 try{}catch语句块所捕获,或者在方法签名里通过throws子句声明.已检查异常必须在编译时被 ...

  8. 全面理解java异常机制

    在理想状态下,程序会按照我们预想的步骤一步一步的执行,但是即使你是大V,你也不可避免出错,所以java为我们提供了异常机制.本文将会从以下几个方面介绍java中的异常机制: 异常机制的层次结构 异常的 ...

  9. Java基础语法<十一> 异常 断言 日志 调试

    1 处理错误 1.1 异常分类 Error类层次描述了Java运行时系统的内部错误和资源耗尽错误. 设计Java程序时,主要关注Exception层次结构. 由程序错误导致的异常属于RuntimeEx ...

随机推荐

  1. DEDECMS最新5.7版在Windows下的Memcache安装

    一,织梦后台后台设置进入系统后台,在[系统基本参数]下面的"性能选项"卡当中,关于memcache进行如下配置: cfg_memcache_enable : 是否启用memcach ...

  2. 使用JavaScript将图片保存至本地

    在最近的开发当中,我们需要为img标签以及canvas动态绘制的图像提供下载功能,下面是经过探索后我们得出的结果. 一.Canvas 版本 // 下载Canvas元素的图片 function down ...

  3. C/C++调用Golang 二

    C/C++调用Golang 二 <C/C++调用Golang 一>简单介绍了C/C++调用Golang的方法步骤,只涉及一个简单的函数调用.本文总结具体项目中的使用场景,将介绍三种较复杂的 ...

  4. oracle 导入 dmp

    执行命令 imp his/his@orcl File=/home/oracle/core_his50_common.dmp FULL=Y

  5. c# 调用python语言

    config   文件配置 <configuration>节中 第一个的位置插入如下节点,版本根据实际用到的来写 <configSections>    <section ...

  6. python中顺序查找分析和实现

    顺序查找算法是一种很基本的查找算法,该算法的复杂度一般是最大是O(n),假如加上顺序查找,算法的复杂度 还要降一倍,为O(n/2). Python的代码实现如下所示: def sequential_s ...

  7. java多线程(一)-概述

    最近这段在看java多线程编程方面的东西.所以特写了几篇文章,来总结和回顾一下自己所学习到的相关知识.因为水平有限,文章中总结不全面甚至理解错误的地方,欢迎读者指点批评. 我们平时所接触到的程序,都是 ...

  8. leetcode — linked-list-cycle-ii

    /** * Source : https://oj.leetcode.com/problems/linked-list-cycle-ii/ * * Given a linked list, retur ...

  9. HTTP结构

    HTTP结构 转载请注明出处:HTTP结构简介 HTTP通信过程包括从客户端发往服务器的请求和服务器返回客户端的响应,这篇文章就简单的了解一下HTTP请求和响应的结构与协议本身的状态管理. 用户HTT ...

  10. jQuery CSS 操作函数(六)

    CSS 属性 描述 css() 设置或返回匹配元素的样式属性. height() 设置或返回匹配元素的高度. offset() 返回第一个匹配元素相对于文档的位置. offsetParent() 返回 ...