21.异常
1.我们知道,除数是不能为0的,但是用户的输入你往往无法预料当出现异常后程序一般会停止运行了,但是这可不行啊,这时捕获异常就上线了

2.这时候就得用 try(监控可能出现异常的区域),catch(参数:异常类型,这里对异常进行捕获,处理异常),finally(处理善后工作,这里就是无论出不出现异常都会执行,例如使用了s'canner后,使用完后要关闭,减少资源占用)

2.捕获多种可能的异常
1.当异常类型不同的时候,只捕获一种类型可能有的异常捕获不到,这时候就可以用多个catch进行捕获,捕获规则,更具异常类型,从小--->大(下图)

2.相互调用的异常和上面除数不为0的异常类型不一样,这样就捕获不到

3.这里用了多个catch进行捕捉,但是必须按照小--->大的异常,也可以直接写最大的那个,但是嘛,杀鸡焉用宰牛刀

3.抛出异常
1.当我们知道这个程序可能会出现的异常,我们可以主动抛出异常(throw)

2.假设在方法中处理不了这个异常,我们就可以往上抛这个异常(throws)

4.小结
-
throw是主动抛出异常 ,throws是往上抛出异常,只是抛出异常,但是不会去处理
-
try catch才是去处理异常
-
为什么要处理异常?:因为处理异常后,程序能够往下执行,不会出现程序中断
-
上面的例子都是运行时异常,一般系统会主动抛出,我们人工无需主动抛出,这里是为了举例
-

浙公网安备 33010602011771号