异常类的构建
Posted 学习只为旅行
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了异常类的构建相关的知识,希望对你有一定的参考价值。
子类可以赋值给父类(赋值兼容性)
ArithmeticException:计算异常(1/0)
NullPointerException:空指针异常(需要合法指针时得到的却是空指针)
IndexOutOfBoundsException:越界异常(数组越界)
NoEnoughMemoryException:内存不足异常(需要动态内存申请时没有空间了)
InvalidParameterException:参数错误异常(算法需要接受参数,判定参数是否合法)
Exception:顶层抽象父类,抽象接口,产生不了对象
最顶层的父类接口定义:
纯虚析构函数(virtual ~Exception() = 0;):工程实践里面:仅仅说明当前类为抽象类!无其它功能!不能生成对象!
妙啊,现在终于知道了为什么要用init()函数来初始化了,并不是个鸡肋函数…
接下来是测试环节:
将纯虚函数的=0去掉,使它可以产生对象进而测试,添加一句宏
#define THROW_EXCEPTION(e, m) (throw e(m, _FILE_, _LINE_))
宏的作用就是不用自己再去写LINE和FILE了,可读性增强了不少!测试完记得加上=0
编写子类异常类,下面只演示一个,其他一样的套路:
赋值兼容性原则,子类抛出的异常可以被父类抓获
小结
以上是关于异常类的构建的主要内容,如果未能解决你的问题,请参考以下文章