异常类的构建

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

编写子类异常类,下面只演示一个,其他一样的套路:

赋值兼容性原则,子类抛出的异常可以被父类抓获

小结

以上是关于异常类的构建的主要内容,如果未能解决你的问题,请参考以下文章

第十一课异常类的构建-------------狄泰软件学院

异常类的构建

Cpp数据结构实战开发2-基本类的构建

java异常类关系

java异常类的妙用

python中的异常类的认识理解?