异常处理

什么是异常

异常是组织当前方法或作用域继续执行的问题,在程序终导致程序中断运行的一些指令

 

异常结构图

 

Throwable :

可以抛出的东西,比如异常

继承Object类,是JAVA中所有错误或异常的超类(异常最顶层的类)

 

之后,Error和Exception(重点) 

Error是Throwable 的子类,它属于是非常严重的BUG(不是代码语法问题),一般写程序时不管它,也管不了,是系统的内部的错误

 

Exception:写程序时可能出现的异常就是这个类下的,Exception是Throwable 的子类,它指出了合理的引用程序想要捕获的条件

 

Exception又分:受检异常(在编译的时候出现异常)和非受检异常 RuntimeException (在运行的时候出现异常)

注:在eclipse编译器中,eclipse会自动编译(保存时编译),所以受检异常在写代码时就会抛出,运行时非受检异常抛出(如果有),异常每个程序员都会有,重点是怎么看异常和排除

 运行结果

 

修改除数报错

 

 

 

处理异常


在开发中,我们需要吧可能出现异常的代码块使用try语句块包裹起来

 

 

 

try与catch关键字


当出现异常的代码块被try语句块包裹起来后,后续的代码(如果有)就会继续执行,这就是抛出异常的概念

catch可以写多个,因为可能不止一个异常存在

 

代码块中有可能出现的异常都可以写进Catch里

当你不清楚具体的异常类型时,可以用Exception,因为所有的异常类型都是Exception的子类,注意在catch中写多个异常的时候注意影响范围由小到大,从具体(某个异常类型)到大概(Exception),如果大的放前面后续的catch都不会执行

 

finally语句

不管有没有异常都会执行finally代码块中的代码,只需要写一个

 

当遇到代码中有return时,一般遇到return就表示当前程序结束,不过当代码在try语句种事,会优先搜索有没有finally并一定执行,所以就算遇到程序中断语句finally还是会执行

printStackTrace()

因为我们不可能去背每个异常类型,所以用这个方法来显示系统抛出的异常类型(在栈中),这样我们就在程序没停住的情况下了解详细的异常类型,这个方法只在代码测试的时候使用,异常排除后要注释掉

 

 

 

 

throw与throws

throw与throws通常一起使用

throws:在方法的声明上使用的,可以写多个(逗号分开)

throw:在方法内使用,它本身就返回的意思(代码错了不执行了和return有异曲同工之妙),抛出一个异常

 

 

posted @ 2021-12-15 17:28  星雨boy  阅读(66)  评论(0)    收藏  举报