我是靠谱客的博主 文静白猫,这篇文章主要介绍java怎么捕获异常,现在分享给大家,希望可以做个参考。

在Java中,凡是可能抛出异常的语句,都可以用try ... catch捕获。把可能发生异常的语句放在try { ... }中,然后使用catch捕获对应的Exception及其子类。

多catch语句

可以使用多个catch语句,每个catch分别捕获对应的Exception及其子类。JVM在捕获到异常后,会从上到下匹配catch语句,匹配到某个catch后,执行catch代码块,然后不再继续匹配。 (推荐学习:java课程)

简单地说就是:多个catch语句只有一个能被执行。例如:

复制代码
1
2
3
4
5
6
7
8
9
10
public static void main(String[] args) { try { process1(); process2(); process3(); } catch (IOException e) { System.out.println(e); } catch (NumberFormatException e) { System.out.println(e); } }
登录后复制

存在多个catch的时候,catch的顺序非常重要:子类必须写在前面。例如:

复制代码
1
2
3
4
5
6
7
8
9
10
11
public static void main(String[] args) { try { process1(); process2(); process3(); } catch (IOException e) { System.out.println("IO error"); } catch (UnsupportedEncodingException e) { // 永远捕获不到 System.out.println("Bad encoding"); } }
登录后复制

对于上面的代码,UnsupportedEncodingException异常是永远捕获不到的,因为它是IOException的子类。当抛出UnsupportedEncodingException异常时,会被catch (IOException e) { ... }捕获并执行。

因此,正确的写法是把子类放到前面:

复制代码
1
2
3
4
5
6
7
8
9
10
public static void main(String[] args) { try { process1(); process2(); process3(); } catch (UnsupportedEncodingException e) { System.out.println("Bad encoding"); } catch (IOException e) { System.out.println("IO error"); } }
登录后复制

以上就是java怎么捕获异常的详细内容,更多请关注靠谱客其它相关文章!

最后

以上就是文静白猫最近收集整理的关于java怎么捕获异常的全部内容,更多相关java怎么捕获异常内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(120)

评论列表共有 0 条评论

立即
投稿
返回
顶部