首页 > 编程语言 >[Java] try catch finally注意点

[Java] try catch finally注意点

时间:2023-06-01 13:44:53浏览次数:43  
标签:return int System try finally catch

try catch finaly 注意点

finaly块中有return语句

public static void main(String[] args) {
    System.out.println(throwException());
}

public static int throwException() {
    try {
        int i = 1 / 0;
    } catch (Exception e) {
        e.printStackTrace();
        throw new RuntimeException("catch块抛出异常");
    } finally {
        System.out.println("finally 块");
        return 0;
    }
}

image

这种情况下,finally块中的return 0;会导致catch块中的异常没有正常抛出。

若不想异常无正常抛出的话,应该将return 0;放置在try catch finally块外。

public static int throwException() {
    try {
        int i = 1 / 0;
    } catch (Exception e) {
        e.printStackTrace();
        throw new RuntimeException("catch块抛出异常");
    } finally {
        System.out.println("finally 块");
    }
    return 0;
}

image

标签:return,int,System,try,finally,catch
From: https://www.cnblogs.com/yorkey/p/17448691.html

相关文章

  • try catch捕获异常解析堆栈信息
    1packagekd.moya.zhgs.helper;2importjava.io.PrintWriter;3importjava.io.StringWriter;4/**5@ClassName:ErroHelper6@Description:TODO(异常解析)7@author:liul8@Date:2021/11/100010/15:08/星期三9/10publicclassErroHelper{11/*12......
  • catch( Exception e ) 中的 e 是什么
    catch(Exceptione)中的e是啥子意思,没错,这里的e就是一个类型为Exception的异常对象。当然异常类型和对象名都可以随着自己的需求偏好进行更换,只是大家都习惯了用e对异常对象进行命名而已。同时,既然它是对象,也有可能存在自己的方法不是,所以,下面列了几个相对常用的方法出......
  • flutter开发Nuget.exe not found, trying to download or use cached version解决方法
    问题:Nuget.exenotfound,tryingtodownloadorusecachedversion解决方法:首先确保VisualStudio安装,这个是flutter构建Window应用必须的,并且安装了对应的WindowsSDK,通过VisualStudioInstaller安装管理员身份运行cmd窗口,然后执行wingetinstallMicrosoft.NuGet安装NuG......
  • catchAdmin+phpEmailer批量发邮件
    前端参数  后端逻辑//多个邮箱配置publicfunctionsystem(){$email_type=input('email_type','1');$field='id,smtp,smtp_port,sender_email_adress,smtp_name,smtp_code,encryption_type';$where[]=......
  • Planar Odometry from a Radial Laser Scanner. A Range Flow-based Approach(1)论文解
    激光光流里程计的基本理解:(1)类比图像光流,假设光强度不变,图像是每个像素点,像素包含灰度值;激光光流,假设障碍物不动,光流是激光范围内的激光点,每个激光点包含距离和角度信息(2)图像信息求导,得到光强度;激光光流信息求导,得到速度(距离的速度,角度的速度),并可以用分解到笛卡尔坐标系下的速度......
  • docker的CMD和ENTRYPOINT
    在Dockerfile中,`CMD`和`ENTRYPOINT`都用于定义容器启动时要执行的命令或程序,但它们有一些关键的区别。1.`CMD`的作用:-`CMD`指令用于设置容器启动时的默认命令或程序。-`CMD`可以在Dockerfile中只出现一次,如果有多个`CMD`指令,只有最后一个指令会生效。-`......
  • Sentry项目接入规范
    介绍Sentry是一个实时事件日志记录和汇集的平台。其专注于错误监控以及提取一切事后处理所需信息而不依赖于麻烦的用户反馈。它分为客户端和服务端,客户端(目前客户端有C#,Python,PHP,JavaScript,Ruby等多种语言)就嵌入在你的应用程序中间,程序出现异常就向服务端发送消息,服......
  • Flutter Package: retry
    Flutterpackage:retry传送门Thispackageprovidesaneasywaytoretryasynchronousfunctions.Thisisoftenusefultoavoidcrashingonintermittenterrorssuchasbrokenconnectionsortemporarilyoverloadedservers.这个包提供了一种重试异步函数的简单方......
  • GitlabCI学习笔记之三:GitLabRunner pipeline语法之tags allow_faillure when retry ti
    1.tags用于从允许运行该项目的所有Runner列表中选择特定的Runner,在Runner注册期间,您可以指定Runner的标签。tags可让您使用指定了标签的runner来运行作业,此runner具有ruby和postgres标签。示例给定带有osx标签的OSXRunner和带有windows标签的WindowsRunner,以下作业将在......
  • sshpass报错 Permission denied, please try again.和 connect to host localhost po
    最近在做自动化时,自动化脚本用sshpass给远程机器发送命令(sshpass-p"123456"ssh-p10022root@localhost-oStrictHostKeyChecking=no"poweroff")报错:Permissiondenied,pleasetryagain.和 ssh:connecttohostlocalhostport10022:Connectionrefused   1.......