Java中异常处理方式

这篇具有很好参考价值的文章主要介绍了Java中异常处理方式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


针对异常的处理主要有两种方式:

1.抛出异常

遇到异常不进行具体处理,而是继续抛给调用者(throw,throws)抛出异常有三种形式,一是 throw,一个 throws,还有一种系统自动抛异常。throws 用在方法上,后面跟的是异常类,可以跟多个;而 throw 用在方法内,后面跟的是异常对象。

2.try catch 捕获异常

在catch语句块中补货发生的异常,并进行处理。
Java中异常处理方式
try-catch捕获异常的时候还可以选择加上finally语句块,finally语句块不管程序是否正常执行,最终它都会必然执行。

三道经典异常处理代码题

1.题目一

public class TryDemo {
    public static void main(String[] args) {
        System.out.println(test());
    }
    public static int test(){
        try {
            return 1;
        }catch (Exception e){
            return 2;
        }finally {
            System.out.print("3");
        }
    }
}

执行结果:31
try、catch。finally 的基础用法,在 return 前会先执行 finally 语句块,所以是先输出finally 里的 3,再输出 return 的1。

2.题目二

public class TryDemo {
    public static void main(String[] args) {
        System.out.println(test());
    }
    public static int test(){
        try {
            return 1;
        }catch (Exception e){
            return 2;
        }finally {
            return 3;
        }
    }
}

执行结果:3
try 返回前先执行 finally,结果 finally里不按套路出牌,直接 return 了,自然也就走不到 try 里面的 return 了。finally 里面使用 return 仅存在于面试题中,实际开发这么写要挨吊的

3.题目三

public class TryDemo {
    public static void main(String[] args) {
        System.out.println(test());
    }
    public static int test(){
        int i = 0;
        try {
            i = 2;
            return i;
        }finally {
           i = 3;
        }
    }
}

执行结果:2
大家可能会以为结果应该是 3,因为在 return 前会执行 finally,而 i 在 finally 中被修改为 3 了,那最终返回 i 不是应该为 3 吗?
但其实,在执行 finally 之前,JVM 会先将 i 的结果暂存起来,然后 finally 执行完毕后,会返回之前暂存的结果,而不是返回 i,所以即使 i 已经被修改为 3,最终返回的还是之前暂存起来的结果 2。文章来源地址https://www.toymoban.com/news/detail-440025.html

到了这里,关于Java中异常处理方式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SpringMVC 的三种异常处理方式详解

    目录 1. 什么是异常 2. 为什么要全局异常处理 3. SpringMVC异常分类 4. 异常处理思路 5. 三种异常处理方式示例 ① 配置 SimpleMappingExceptionResolver 处理器 ② 实现 HandlerExceptionResolver 接口 ③ 使用@ControllerAdvice+@ExceptionHandler实现全局异常 6. 响应封装类         见字如意,就是编码

    2024年02月08日
    浏览(29)
  • Python两种读取txt与csv文件方式(利用numpy处理数据)

    一共80个数据(只截取前10个数据) 在excel中显示的内容 在pycharm中显示的内容 一共80个数据 在记事本中显示的内容 在pycharm中显示的内容 1、读取所有内容 data_pd打印结果 2、数据转为numpy data_np打印结果 1、读取所有内容 data_pd打印结果 2、数据转为numpy data_np打印结果 1、读取所

    2023年04月11日
    浏览(36)
  • tcp服务器设置accpet为非阻塞的两种处理方式

    监听socket必须绑定一个端口,以便其他客户端可以连接到这个端口,并与该服务端进行通信。监听socket不绑定端口就无法接收连接请求。 每个连接都必须有一个唯一的Socket地址,即IP地址和端口号。TCP协议使用端口号来区分不同的应用程序和连接。 一个 socket 只能与一个 so

    2024年02月07日
    浏览(27)
  • 【C++高阶(七)】C++异常处理的方式

    💓博主CSDN主页:杭电码农-NEO💓   ⏩专栏分类:C++从入门到精通⏪   🚚代码仓库:NEO的学习日记🚚   🌹关注我🫵带你学习C++   🔝🔝 C++有一套独立的异常处理机制, 相信大家一定听说过try,catch这两 个词,今天就来做详细的介绍 本章重点: 本篇文章着重讲解C++异常处理的方

    2024年02月04日
    浏览(27)
  • 深度解析C++异常处理机制:分类、处理方式、常见错误及11新增功能

    异常是程序在运行过程中出现非正常情况的处理机制。当出现异常时程序会停止运行并调用异常处理程序。 异常可以分为内置异常和自定义异常 2.1 内置异常 C++ 标准库提供了许多预定义的异常类,称为内置异常,包括以下几种: std::exception :所有标准异常类的基类。 std::

    2024年01月18日
    浏览(36)
  • Java开启异步的两种方式

    必须配置异步线程池,否则异步不会生效。 @EnableAsync 注解:指定异步线程池。不指定默认使用:SimpleAsyncTaskExecutor线程池 SimpleAsyncTaskExecutor是一个最简单的线程池,它没有任何的线程相关参数配置,它会为每个任务创建一个新的线程来执行,因此不建议在生产环境中使用。

    2024年02月06日
    浏览(52)
  • java 文件压缩zip【两种方式】

     一、普通方式 二、使用zip4j方式 引入jar:  代码块:

    2024年02月11日
    浏览(33)
  • 嵌入式学习笔记(3)ARM的异常处理方式介绍

    什么是异常   正常工作之外的流程都叫异常   异常会打断正在执行的工作,并且一般我们希望异常处理完后继续回来执行原工作   中断是异常的一种 异常向量表   所有的CPU都有异常向量表,这是CPU设计时就设定好的,是硬件决定的。   当异常发生时,CPU会自动动作(

    2024年02月11日
    浏览(39)
  • Java word转为html 两种方式

    滴滴滴上重点。。。    缺点:对字体样式处理不精确;wmf公式图片部分转换不精确,本文档只支持doc格式    优点:转换速度相对很快,本地也方便调试    地址: 下载 LibreOffice | LibreOffice 简体中文官方网站 - 自由免费的办公套件    Linux安装libreoffice案例: linux centos7工具

    2024年02月02日
    浏览(43)
  • JAVA生成唯一订单编号方案(两种方式)

    参考博客: ​​​​​​fhttp://t.csdn.cn/lCQ47​​​​​​​

    2024年02月07日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包