- 异常处理能让你集中精力在一个地方解决问题,然后将处理错误的代码分开来放在另一个地方。
二、捕获异常
======
-
设置一个try/catch的代码块;
-
如果try块内的任何代码抛出了由catch子句指定的异常,则
a. 程序跳过try块中的其他代码;
b. 程序执行catch从句中的处理器代码。
-
如try块内没有抛出异常,直接跳过catch从句内容。
-
如try块内抛出的异常没有在catch从句中指定, 则该方法会立即退出。
三、处理异常
=======
1.如何控制try的范围:根据操作的连动性和相关性,如果前面的程序代码块抛出的错误影响了后面程序代码的运行,那么这个我们就说这两个程序代码存在关联,应该放在同一个try中。
对已经查出来的例外,有throw(消极)和try catch(积极)两种处理方法。
对于try catch放在能够很好地处理例外的位置(即放在具备对例外进行处理的能力的位置)。如果没有处理能力就继续上抛。
当我们自己定义一个例外类的时候必须使其继承excepiton或者RuntimeException。
- 对子类方法抛出的异常不能超出父类方法throws指令的范围。如父类方法不抛出任何异常,在子类方法中必须捕捉每一个“已检查异常”。
四、捕捉多个异常
========
-
每个异常类型使用一个catch从句;
-
如前面catch从句捕获异常,将直接跳过后面catch从句内容;
-
建议按异常类型的子类->超类的顺序排列catch从句的先后顺序。
五、finally 声明
============
无论是否捕获异常,都会执行finally从句中的代码;
例子:
finally{ con.close();}
六、 异常调用栈
========
-
哪个方法调用的代码发生异常,返回到调用方法的地方;
-
main方法调用的代码发生异常,返回到虚拟机。
七、 异常层次
=======
答:1) 起源于Error的类代表不常用的环境(通常是硬件层面);
-
应用程序不能够从Error中恢复正常;
-
所有的Java异常都起源于Exception;
-
RuntimeExcepiton也称为未检查异常;
-
未检查异常无须捕获;
-
其它异常,也称为检查异常,必须处理
Object
↑
Throwable
↑
|ˉˉˉˉˉˉˉˉ|
Error Exception
| ↑
| |ˉˉˉˉˉˉˉ|
最后
现在其实从大厂招聘需求可见,在招聘要求上有高并发经验优先,包括很多朋友之前都是做传统行业或者外包项目,一直在小公司,技术搞的比较简单,没有怎么搞过分布式系统,但是现在互联网公司一般都是做分布式系统。
所以说,如果你想进大厂,想脱离传统行业,这些技术知识都是你必备的,下面自己手打了一份Java并发体系思维导图,希望对你有所帮助。
,包括很多朋友之前都是做传统行业或者外包项目,一直在小公司,技术搞的比较简单,没有怎么搞过分布式系统,但是现在互联网公司一般都是做分布式系统。
所以说,如果你想进大厂,想脱离传统行业,这些技术知识都是你必备的,下面自己手打了一份Java并发体系思维导图,希望对你有所帮助。
[外链图片转存中…(img-N6cHva5d-1714351089449)]