一.
不同的问题用不用的类来进行描述了,也就是说问题有多少,异常类就有多少。生活中的问题很多,转换到计算机中也是一样的。既然是对象了,那就要具备面向对象的一些特征,封装,继承。接下来讨论地就是继承,问题太多,要抽取共性,继承形成体系。
都是问题,都有名字,位置,只是信息不一样,一个是角标越界,另一个空指针。有共性,开始向上抽取
问题中还有不同的种类,一个是错误error,另一个是异常exception。如果发生了错误,就不再需要进行针对性的处理了,而到了异常,我们可以进行针对性的处理。无论是错误还是异常,它们都是问题,它们会形成一个共性的父类。
到这里,异常体系的最基本有一个throwable父类,下面有两大派,一个是error,一个是exception。它们各有很多小弟,错误有很多种,异常也有很多种,(异常体系和异常是两码事),但它们都具备可抛的特性。异常落实到源代码里面就是一个类,放到计算机内存就是一个对象。出事了,我们把出事变成对象告诉调用者,告诉你出事了。而这个出事对象里包含着怎么出的事,出的什么事,出在什么地方。
怎么告诉调用者?return是返回,用return就意味着这个功能返回的是个问题,谁调用功能会返回个问题?这就不是功能,功能就应该有正确的结果。如果功能没运算完就失败了,这是个问题,那失败了还能返回具体值吗?没必要了,给他一个对象,所以这不能写return。怎么把对象给调用者呢?就是抛出。
这抛出得有个前提,这些问题对象都得具备可抛性。不是所有的对象都能抛出的,只要是throwable父类下的子类都具备可抛性。
代码的具体用法不着急,用法都是固定的。先掌握思想是怎么回事。为什么要抛,什么时候抛。
说完throwable后,接下来就说说error和exception。为什么要有这两者的区分?两者的由来,这和生活中事例是一样的,人得病,病就是问题。疾病有很多种,其实疾病就两种,可治愈的和不可治愈的。感冒,发烧,吃药就可以了,这就是异常,需要处理。而error,这就属于疾病当中,不可处理的范畴了。
运行没有定义过的haha类,dos的显示就是error,
java是用class来作为运行文件存在的,运行文件都不在你认为是异常吗?这不是异常,这处理不了。这是错误,错误是严重性的。错误有什么特点?
这是类没有书写,出现的错误。并不是说类出现了,就没有错误了,一样会有错误的出现,
截图中是有类存在的,创建了一个数组,大小是800M,但是虚拟机最大64M,这样也是错误。这就是内存溢出,这种情况不能处理,它严重地影响到了我们程序的执行。
二.
接下来,我们就谈论error和exception里面各自涉及的小弟们。
也就是说这些类名其实都是确定的。
总结:本节只是介绍了,异常类的种类,以及内部不同类的区别。对于哪个是error,哪个是exception还是没有分清楚。