java学习回顾---异常

异常:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
声明异常:类似于abstract,强制用户来“重写”。用来提高安全性。
方案一:
在这里插入图片描述
方案2:
在这里插入图片描述声明异常的作用就是让使用到该方法的类要么就对该方法进行try-catch(方案1)要么就继续抛出异常(方案2)

多异常处理:

在这里插入图片描述
注意:如果定义了多个处理方式,其中有某一处理方式的父类处理方式也在内,那么父类的代码块应放在子类的下面,不然子类的代码块不可能执行到。
在这里插入图片描述

自定义异常:

如果存在一些异常是java没有内定而设计者又要避免的,可以自定义异常。(如:做除法时,java规定不能除0其余均可,如果设计者想让除负数也不可以的话,就要自定义异常来让除负数也会程序异常)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

在这里插入图片描述

Throw和throws的区别:

在这里插入图片描述
通俗的说,throws是在小括号与大括号之间。如:
在这里插入图片描述

Runtimeexception

在这里插入图片描述
在这里插入图片描述
运行结果:
在这里插入图片描述

异常分为两种:

1.编译时被检测的异常(可处理的,需要标识让调用者去处理)
如函数内有非runtime异常时,函数上就要标识(即声明)。函数上标识了异常之后,调用者也必须标识或者提供处理方法(try,catch)。
2.编译时不被检测的异常(不可处理的)
即运行时异常,runtimeexception及其子类

当异常可以处理的时候,一般直接try,catch处理掉,不能处理时就抛(标识)给下个类别让它处理。(若无类可以处理,就将问题转换成这个类可处理的形式,见下)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这里出现冒烟问题的时候,老师就已经无法解决了,老师抛给上层的老师同样无法解决。所以只能将这个冒烟问题转换成老师自己的问题(课时无法继续)上报给上层的领导,然后上层的老师在处理这个问题(主函数里的e.tostring()的功能是打印e(即Noplanexception)的错误信息。
这里共有三个异常,其中蓝屏异常是老师可以解决的。蓝屏异常在电脑这个类中出现之后会抛给老师这个类里面的prelect(),然后处理。
冒烟异常在电脑这个类里出现之后同样会抛给老师这个类里的prelect(),不同的是老师是无法处理这个问题的,所以catch里又把这个问题抛给了老师异常同时打印了错误信息。
主函数就相当于上层的领导,负责“新建”老师的对象并让他们去上课。主函数在接收到老师的异常之后会进行打印错误信息并作出处理。(主函数只能处理老师异常,因为只有catch(noplanexception e))
注意:向外抛出去的内容应是接收对象能处理的,如果接收对象不能处理,就要建立该对象能处理的自定义异常再抛给该对象。

Finally代码块:

一定会执行的代码,哪怕再return语句的下面也会执行。通常用于关闭资源。(但是在system.exit后的话就不会执行,因为系统已经退出)
在这里插入图片描述
Runtimeexception常用于一旦发生了这个异常之后,后续的代码都将无意义的情况。(比如输入了非法数据,例:在计算面积时输入了非法的长宽,后续的面积计算就没有了意义,这是可以设置输入非法数据会引起运行异常,从而实现一旦输入非法数据就停止运行程序,后续的代码也就不会运行到。如果用的不是运行异常而是普通的异常,那么出现非法数据之后还要抛给下一对象来try,catch,而这些步骤实际上没有意义,因为输入的数据是非法的。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
Throw单独存在时,下面不要定义语句。
在这里插入图片描述
主函数调用主函数类的方法,要么把方法修饰为静态,要么实例化方法。(因为主函数静态)

猜你喜欢

转载自blog.csdn.net/weixin_46428711/article/details/110675164
今日推荐