1、说明
(1)对于运行时异常来说, 可以不显式的进行处理
(2)对于编译时异常来说, 必须要显式的进行处理
2、方式一:
try{ // 可能出现异常的代码 }catch(Exption1 e1){ // 处理方式一 }catch(Exption2 e2){ // 处理方式二 }finally{ // 一定要执行的代码 }
注:
(1)try 内声明的变量, 类似于局部变量, 除了 try{} 语句, 就不能被调用
(2) catch 语句内部是对异常对象的处理: e.getMessage(); e.printStackTrace()
(3)可以由多个 catch 语句, try 中抛出的异常类对象从上往下去匹配 catch 中的异常类的类型, 一旦满足就执行 catch 中的代码. 执行完, 就跳出其后的多条 catch 语句
(4)如果异常处理了, 那么其后的代码继续执行
(5)若 catch 中多个异常类型是"并列"关系, 那么顺序前后都可以. 若 catch 中多个异常类型是"包含"关系, 须将子类放在父类的之前, 进行处理. 否则报错
(6)finally 是可选的
(7) finally 中存放的是一定会被执行的代码不管 try 中、catch 中是否仍有异常未被处理, 以及是否有 return 语句
(8)try-catch 是可以互相嵌套的
3、方式二:
(1)在方法的声明处, 显式的抛出该异常对象的类型
(2) 格式,如:
public static void method() throws Exception{}
(3)当在此方法内部出现异常的时候, 会抛出一个异常类的对象, 抛给方法的调用者
(4)异常的对象可以逐层向上抛, 直到main中. 当然在向上抛出的过程中, 可以再通过 try-catch-finally进行处理
以上是java异常处理的分类问题如何解决的详细内容。更多信息请关注PHP中文网其他相关文章!