Java中try-catch的使用及注意细节

 更新时间:2023年06月13日 14:36:50   作者:呀吖呀吖呀  
现在有很多的语言都支持try-catch,比如常见的就是c++,java等,这篇文章主要给大家介绍了关于Java中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"时

请添加图片描述

语句时再次运行:

请添加图片描述

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

再次运行:

请添加图片描述

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

请添加图片描述

5.可以进行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

快捷键

总结 

到此这篇关于Java中try-catch的使用及注意细节的文章就介绍到这了,更多相关try-catch使用及细节内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java编写缓存工具类的示例代码

    Java编写缓存工具类的示例代码

    这篇文章主要为大家详细介绍了如何基于Java编写一个缓存工具类,文中的示例代码讲解详细,具有一定的参考价值,感兴趣的小伙伴可以了解一下
    2023-07-07
  • SpringBoot Redis用注释实现接口限流详解

    SpringBoot Redis用注释实现接口限流详解

    Redis 除了做缓存,还能干很多很多事情:分布式锁、限流、处理请求接口幂等性。。。太多太多了~今天想和小伙伴们聊聊用 Redis 处理接口限流,这也是最近的 项目涉及到这个知识点了,我就拎出来和大家聊聊这个话题
    2022-07-07
  • SpringBoot3.3中实现多端口监听的示例代码

    SpringBoot3.3中实现多端口监听的示例代码

    在SpringBoot应用中实现多端口监听,可以让一个应用处理不同类型的HTTP请求或暴露多个服务接口,本文详细讲解了通过配置application.yml文件和编写自定义配置类的方法,实现了对多个端口的监听,感兴趣的可以了解一下
    2024-11-11
  • Java调用Python的四种方法小结

    Java调用Python的四种方法小结

    在现代开发中,结合不同编程语言的优势往往能达到事半功倍的效果,本文将详细介绍四种在Java中调用Python的方法,并推荐一种最常用且实用的方法,希望对大家有一定的帮助
    2025-05-05
  • spring boot 2整合swagger-ui过程解析

    spring boot 2整合swagger-ui过程解析

    这篇文章主要介绍了spring boot 2整合swagger-ui过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12
  • springboot中的多个application文件讲解

    springboot中的多个application文件讲解

    这篇文章主要介绍了springboot中的多个application文件,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • 浅谈resultMap的用法及关联结果集映射

    浅谈resultMap的用法及关联结果集映射

    这篇文章主要介绍了resultMap的用法及关联结果集映射操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06
  • 如何让@EnableConfigurationProperties的值注入到@Value中

    如何让@EnableConfigurationProperties的值注入到@Value中

    这篇文章主要介绍了如何让@EnableConfigurationProperties的值注入到@Value中的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-06-06
  • 详解Springboot整合ActiveMQ(Queue和Topic两种模式)

    详解Springboot整合ActiveMQ(Queue和Topic两种模式)

    这篇文章主要介绍了详解Springboot整合ActiveMQ(Queue和Topic两种模式),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-04-04
  • Spring Cloud Nacos配置管理方案

    Spring Cloud Nacos配置管理方案

    Nacos是SpringCloud中用于服务注册与发现和配置管理的组件,提供多种健康检查机制和历史版本管理,Nacos支持单机、集群和多集群模式,通过OpenAPI和多种语言客户端进行接入,感兴趣的朋友一起看看吧
    2025-01-01

最新评论