java异常详解 很全详解

					 java异常全解

概念:

异常就是异常就是有异于常态,和正常情况不一样,有错误出现。在java中,阻止当前方法或作用域的情况,称之为异常。
那么为什么要用异常机制呢:也就是说异常的好处究竟是什么呢?

好处

好处一:将自己处理不了的异常交给上一级这样做的话,就可以增加代码的稳定性;
好处二:降低了代码的复杂度,不用的话你想想每次异常处理你就要处理一下,有可能在多个地方处理,这样不好;
异常使得代码阅读,编写更加容易;

那么异常处理的时候会发生什么事情呢?

异常出现的时候,会把异常抛出到上一层更高级的环境中去;
a.java的堆上会创建出java的异常对象;、
b.当前路径终止,弹出当前环境的引用;
c.抛出异常,把异常抛出到更大的环境中去;

异常参数

异常都有2个构造器;一个是默认构造器,一个是接受字符串的构造器;
throw有许多有趣的结果,new之后的异常将把引用传递给throw;

异常的继承结构:

如下图:
大的图
最上面的异常时 Throwable,这个异常只是打雷,包含了error(编译的时候或者系统的错误)和Exception(包含了可以被抛出的异常)其中包括RuntimeException(非检查异常)和checjexception(检查异常)
在这里插入图片描述
RuntimeException如果没有被捕获的话直接到达main()方法;
将在退出程序把错误报告给System.err里面去;
RuntimeException表示的应该是编程错误
1.无法预料的错误
2.注意在代码审查里面的错误;

finally关键字;

final里面是一定会被执行的代码,即使catch出现异常,retur语句也一定会继续执行;
数据库连接 输入输出,网络编程jvm不能自动回收,我们需要手动关闭;放在finallu里面去;

return和finally

不管有没有finally和return没有关系;

捕获异常的顺序;

先捕获子类异常的话没关系;
如果先捕获父类的话就有问题了;因为这样子的话,先捕获父类,子类永远都捕获不到,就会被屏蔽。
总结:要先捕获子类的异常

## 异常观点:
1.java发明异常是c语言里面启发的;
2.在大的项目内容易出现异常,这时候就要出现异常;

最后最后最后;

异常使用指南

a.在恰当的级别处理异常
b.解决问题并且重新调用异常
c.进行少许修改,然后绕过异常
d.用别的数据处理
e.能处理的事情全部处理,不能就抛到更高层
f.终止程序
g.进行简化
h.让类库更安全

猜你喜欢

转载自blog.csdn.net/m0_51373056/article/details/111096017
今日推荐