当前位置:首页 » 《随便一记》 » 正文

try-catch的使用以及细节

16 人参与  2023年03月31日 10:49  分类 : 《随便一记》  评论

点击全文阅读


文章目录

try-catch的使用以及细节1. 基本语法2. 注意细节快捷键

try-catch的使用以及细节

? Java中提供 trycatch块来处理异常。try块用于包含可能出错的代码。catch块用于处理try块中发生的异常。可以根据需要在程序中有多个try…catch块。

1. 基本语法

try{//可疑代码//将异常生成对象的异常对象传递给catch块}catch(异常){//对异常进行处理}finally{} //可以没有finally

2. 注意细节

如果异常发生了,则异常发生后面的代码不会执行,直接进入到catch

如果异常没有发生,则顺序执行try的代码块,不会进入到catch

如果希望发不发生异常都进入到某段代码段 例如:关闭数据库的连接,则使用 finally{ }

public static void main(String[] args) {    //ctrl + alt +t     try {        String str = "123";        int a = Integer.parseInt(str);        System.out.println(a);    } catch (NumberFormatException e) {        System.out.println("异常信息" + e.getMessage());    }finally {        System.out.println("finally代码块被执行");    }    System.out.println("程序继续");}

运行结果为:请添加图片描述

当更改为"abc"时请添加图片描述语句时再次运行:请添加图片描述

可以有多个catch语句,捕捉不同的异常(进行不同的业务处理),要求父类异常在后,子类异常在前,比如Exception 在后 ,NullPointerException在前,如果发生异常,只会匹配一个catch
public class TryCatchDetai {    public static void main(String[] args) {        try {            Person person = new Person();            person = null;            System.out.println(person.getName());            int n1 = 10;            int n2 = 0;            int res = n1/n2;        }catch (NullPointerException e){            System.out.println("空指针异常 " + e.getMessage());        }        catch (Exception e){            System.out.println("算术异常" + e.getMessage());        }finally {        }    }}class Person{    private String name = "yayaya";    public String getName(){        return name;    }}

运行的结果为:
请添加图片描述

但是实际上还有一个异常为算术异常 及分母不能为0,因为已经找到一个异常就不会捕获下一个异常。

person = null;代码注销

再次运行:
请添加图片描述

如果更改获取异常的顺序,编译器就会报错。所以父类异常需要在后,子类异常需要在前。请添加图片描述

可以进行try-finally 配合使用,这种用法相当于没有捕获异常
所以程序会崩溃。但是finally一定会执行,例如:需要关闭数据库,一些必须要执行的代码
public class TryCatchDetail02 {    public static void main(String[] args) {        try {            int n1 = 10000;            int n2 = 0;            System.out.println(n1/n2);        }finally {            System.out.println("执行finally");        }        System.out.println("程序继续运行");    }}

当程序运行到n1/n2时候会报错,这个时候会先执行finally语句,执行完之后就崩溃。!!

运行结果为:请添加图片描述

快捷键

全选住代码 ctrl + alt +t 选择6就可以一键生成try=catch
快捷键


点击全文阅读


本文链接:http://zhangshiyu.com/post/57523.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1