Java异常处理的两种⽅式
异常处理⽅式⼀:在当前⽅法中直接⽤try…catch处理
异常处理⽅式⼆:在当前⽅法中不处理,throws 异常抛给调⽤者处理
⼀.
try-catch的⽅式就是捕获异常。
try:该代码块中编写可能产⽣异常的代码。
catch:⽤来进⾏某种异常的捕获,对捕获到的异常进⾏处理。
⽤try-catch的⽅式还可以添加final语句
finally:有⼀些特定的代码⽆论异常是否发⽣,都需要执⾏。另外,因为异常会引发程序跳转,导致有些语句执⾏不到。⽽finally就是解决这个问题的,在finally代码块中存放的代码都是⼀定会被执⾏的。
注意:
catch 中定义的异常变量的类型是根据 try 中抛出的异常来定义的;⼀般抛出什么类型的异常对象,就定义什么类型异常变量来接收这个异常对象
try 中可能会抛出多个异常对象,就可以定义多个 catch 来分别处理这些异常对象
try代码中如果出现了异常,那么就不会继续执⾏ try 中的代码,对应的匹配的catch分⽀执⾏,执⾏完毕后继续执⾏ath之后的代码
try代码中如果没有出现异常,正常执⾏try中的代码,不会执⾏catch中异常的处理逻辑,会执⾏执⾏atch之后的代码
try catch的使用方法
多个异常该如何处理呢
1. 多个异常分别处理,⼀个异常对应⼀个try⼀个catch
2. 多个异常⼀次捕获多次处理,⼀个try多个catch
3. 多个异常⼀次捕获⼀次处理,只⽤⼀个try⼀个catch,定义⼀个范围更⼤的⽗类异常对象
⼆.
2.1 throw关键字
在编写程序时,我们必须要考虑程序出现问题的情况。⽐如,在定义⽅法时,⽅法需要接受参数。那么,当调⽤⽅法使⽤接受到的参数时,⾸先需要先对参数进⾏合法的判断,数据若不合法,就应该告诉调⽤者,传递合法的数据进来。这时需要使⽤抛出异常的⽅式来告诉调⽤者。
异常的对象的创建和抛出有两种⽅式:
(1)JVM创建并抛出
(2)程序员new出来,然后由throw抛出。
在java中,提供了⼀个throw关键字,它⽤来抛出⼀个指定的异常对象:
1. 创建⼀个异常对象。封装⼀些提⽰信息(信息可以⾃⼰编写)
2. 通过关键字throw,throw 异常对象,将这个异常对象告知给调⽤者
throw ⽤在⽅法内,⽤来抛出⼀个异常对象,将这个异常对象传递到调⽤者处,并结束当前⽅法的执⾏。
注意事项:
throw关键字必须写在⽅法内部
throw关键字后边创建的异常对象,必须是Exception或Exception的⼦类对象
throw关键字后边创建的异常对象:
(1) 如果是运⾏期异常,那么我们不⽤处理这个异常,交给JVM处理,默认处理⽅式就是中断处理
(2) 如果是编译期异常,那么我们就必须处理这个异常,要么throws继续抛出交给上层调⽤者处理,要么atch⾃⼰处理
2.2 throws关键字
声明异常:将问题标识出来,报告给调⽤者。如果⽅法内抛出了编译期异常,⽽没有捕获处理,那么必须通过throws关键字进⾏声明,让调⽤者去处理。
关键字throws⽤在⽅法声明上,⽤于表⽰当前⽅法不处理异常,⽽是提醒该⽅法的调⽤者来处理异常
注意事项:
throws关键字必须写在⽅法声明处
throws关键字后边声明的异常类名必须是Exception或Exception的⼦类
⼀般⽅法内部抛出什么异常类型,就声明什么异常对象
如果⽅法内部抛出了多个异常对象,那么在throws后⾯可以写多个异常类,⽤逗号隔开。
如果抛出的多个异常对象有⼦⽗类关系,那么我们声明⽗类异常即可
如果调⽤了⼀个声明抛出编译期异常的⽅法,那么我们就必须处理这个异常对象:
a.可以使⽤throws继续声明抛出这个异常,最终交由JVM处理 --> 中断处理
b.可以使⽤atch⾃⼰处理这个异常
运⾏期异常可以不处理,即不捕获也不声明抛出,交给JVM处理(中断))
如果⽗类抛出了多个异常,⼦类重写⽗类⽅法时,抛出和⽗类相同的异常或者是⽗类异常的⼦类或者不抛出异常。
⽗类⽅法没有抛出异常,⼦类重写⽗类该⽅法时也不可抛出异常。如果⼦类产⽣异常,只能捕获处理,不能声明抛出

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。