#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. 如何写一个SSH项目(三)如何进行交互的

    下面以登录为例子,展示从前台到后端的一整套流程并进行分析. 首先介绍一下我的SSH的分层结构 action和service一起是业务逻辑层          action层调用service层 dao ...

  2. Windows 7下将Tomcat Java程序设置为Windows Service

    可以参看以下资料: https://jingyan.baidu.com/article/b2c186c89f5127c46ef6ff08.html http://tomcat.apache.org/t ...

  3. Python爬虫通过替换http request header来欺骗浏览器实现登录

    以豆瓣为例,访问https://www.douban.com/contacts/list 来查看自己关注的人,要登录才能查看. 如果用requests.get()方法获取这个http,没登录只能抓取回 ...

  4. 韩顺平教学资源java、oracle、linux

    http://blog.itpub.net/28688617/viewspace-766392/

  5. jQuery 事件方法(二)

    方法 描述 bind() 向匹配元素附加一个或更多事件处理器 blur() 触发.或将函数绑定到指定元素的 blur 事件 change() 触发.或将函数绑定到指定元素的 change 事件 cli ...

  6. angular4.0路由传递参数、获取参数最nice的写法

    研究ng4的官网,终于找到了我想要的方法.我想要的结果是用'&'拼接参数传送,这样阅读上是最好的.否则很多'/'的拼接,容易混淆参数和组件名称.一般我们页面跳转传递参数都是这样的格式:http ...

  7. window.atob()与window.btoa()方法实现编码与解码

    window.atob() 与window.btoa() WindowBase64.atob() 函数用来解码一个已经被base-64编码过的数据.你可以使用 window.btoa() 方法来编码一 ...

  8. Yarn篇--搭建yran集群

    一.前述 有了上次hadoop集群的搭建,搭建yarn就简单多了.废话不多说,直接来 二.规划 三.配置如下 yarn-site.xml配置 <property>        <n ...

  9. linux下一键安装redis并设置为后台进程及开机启动

    1.下载适合你的版本的redis(下载页面https://redis.io/download),我下载的是4.0.6版本 wget http://download.redis.io/releases/ ...

  10. ATM机运行代码

    实现代码: import java.util.Scanner; public class Atm { public static void main(String[] args) { // TODO ...