Try-Catch的使用及其细节

文章目录

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

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

    1. 基本语法

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

    2. 注意细节

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

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

    3. 如果希望发不发生异常都进入到某段代码段 例如:关闭数据库的连接,则使用 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"时请添加图片描述语句时再次运行:请添加图片描述

    1. 可以有多个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;代码注销

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

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

    1. 可以进行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
    快捷键

    物联沃分享整理
    物联沃-IOTWORD物联网 » Try-Catch的使用及其细节

    发表评论