首页 > 编程语言 >Java中try...catch...finally、throw和throws的区别和联系

Java中try...catch...finally、throw和throws的区别和联系

时间:2023-05-11 19:56:04浏览次数:42  
标签:... Java 代码 System try finally catch throws out

在Java中经常使用的对异常的处理有:try...catch...finally、throw和throws 之前使用的时候经常混淆 今天花时间梳理了一下

1.try...catch...finally

try中存放可能出现异常的代码,catch处理try中抛出的异常

        int i = 0;
        try {
            System.out.println("开始进入try中代码");
            int a = 100 / i;
            System.out.println("执行try中异常之后代码");
        } catch (Exception e) {
            System.out.println("catch捕获异常");
        } finally {
            System.out.println("执行finally中代码");
        }
        System.out.println("执行try——catch——finally外代码");
    }

以上代码打印结果,打印出了以下结果

开始进入try中代码
catch捕获异常
执行finally中代码
执行try——catch——finally外代码

如果catch捕获并处理了异常之后,下面的代码继续执行。
而如果使用throw抛出了异常之后

 public static void main(String[] args) throws Exception {
        int i = 0;
        try {
            System.out.println("开始进入try中代码");
            int a = 100 / i;
            System.out.println("执行try中异常之后代码");
        } catch (Exception e) {
            System.out.println("catch捕获异常");
            throw e;
        } finally {
            System.out.println("执行finally中代码");
        }
        System.out.println("执行try——catch——finally外代码");
    }

以下是执行结果:

开始进入try中代码
执行finally中代码
Exception in thread "main" java.lang.ArithmeticException: / by zero

从上面代码的运行结果可以看出,try...catch...finally的fianlly中的代码是一定会执行的,而如果使用throw抛出一个异常后,程序不再往下执行。

标签:...,Java,代码,System,try,finally,catch,throws,out
From: https://www.cnblogs.com/zd233/p/17391861.html

相关文章

  • javascript:void(0)
    javascript:void(0),仅仅表示一个死链接,当href=javascript:void(0)的空链接被点击时,页面不会有任何反应。让超链接去执行一个js函数,而不是去跳转到一个地址,而void(0)表示一个空的方法,也就是不执行js函数。javascript:是伪协议,表示url的内容通过javascript执行。void(0)计算结果......
  • Java 远程连接 SQLite 数据库
    Java远程连接SQLite数据库 Java可以使用JDBCAPI来连接SQLite数据库。但是,SQLite不支持远程连接,因为它是一种文件数据库,需要直接访问数据库文件。如果您需要从远程位置访问SQLite数据库,可以将SQLite数据库文件放在共享文件夹中,并将该文件夹映射到本地计算机上。......
  • HDFS文件读写初窥- Java API
    安装HDFS1)hadoop下载:https://hadoop.apache.org/releases.html2)本地安装:https://hadoop.apache.org/docs/r3.3.5/hadoop-project-dist/hadoop-common/SingleCluster.html3)修改配置:etc目录下存放了hadoop相关配置文件,这里要在本地部署伪分布式模式,需要修改以下两个文件:e......
  • Java面向对象
    面向对象编程(OOP)是软件开发的一种新方法,使用这种方法开发的软件具有易维护、可重用和可扩展性等特性。【特征:封装、继承、多态(抽象)】面向对象基本概念:(面向对象的设计就是一个抽象的过程)1、对象:对象就是用来描述客观事物的一个实体。用面向对象的方法解决问题,需要对现实世界中的......
  • Java8中的sort与Comparator、Comparable
    基本含义在Java8中,sort()方法、Comparator接口和Comparable接口是用于对数组或集合进行排序的重要工具,其中Comparator接口适用于自定义比较规则,而Comparable接口适用于定义对象自身的比较规则。假如我们有一个实体类点击查看代码publicclassCoinUserIncome{pr......
  • JavaScript 中的 `for...in` 和 `for...of`
    JavaScript中的for...in和for...of是两种常用的迭代循环语句。它们的用途和行为是不同的。for...in循环用于循环遍历对象的属性,它会遍历对象的可枚举属性和原型链上的可枚举属性。constobj={a:1,b:2};for(letpropinobj){console.log(prop);//输出'a'......
  • 【Java】非访问修饰符 final、static 、abstract
    非访问修饰符final修饰符final可以修饰类、属性和方法<但不能用于修饰构造方法>private不能被子类方法覆盖,private类型的方法默认是final类型的 final修饰的变量有三种:静态变量、实例变量和局部变量,分别表示三种类型的常量。Tips:final变量定义的时候,可以先......
  • 【Java】Java 异常处理
    1、什么是异常?将程序执行中发生的不正常情况称为“异常”2、Java程序在执行过程中所发生的异常事件可分为两类java.lang.Error:一般不编写针对性的代码进行处理java.lang.Exception:可以进行异常的处理Error:Java虚拟机无法解决的严重问题。如:JVM系统内部错误、资源耗尽等......
  • Java虚拟机运行时退出运行
    虚拟机启动直接退出运行,是因为某一个类需要加载到IOC容器里创建bean时无法加载进去,这时候需要检查一下是不是有哪些方法或者类没有写完 ......
  • Java内存模型原理,你真的理解吗?(转载)
    内存模型产生背景在介绍Java内存模型之前,我们先了解一下物理计算机中的并发问题,理解这些问题可以搞清楚内存模型产生的背景。物理机遇到的并发问题与虚拟机中的情况有不少相似之处,物理机的解决方案对虚拟机的实现有相当的参考意义。物理机的并发问题硬件的效率问题计算机处......