当前位置: 首页 > article >正文

Java学习,Finally用法

Java中finally块通常与trycatch块一起使用,以确保在try块中的代码执行完毕后,无论是否发生异常,finally块中的代码都会被执行。在处理资源释放(如文件关闭、数据库连接关闭等)时非常有用。

finally 捕获异常,示例:

public class ExceptionDemo {
   public static void main(String[] argv) {
      new ExceptionDemo().doTheWork();
   }
   public void doTheWork() {
      Object o = null;
      for (int i=0; i<5; i++) {
         try {
            o = makeObj(i);
         }catch (IllegalArgumentException e) {
            System.err.println("Error: ("+ e.getMessage()+").");
            return;   
         }finally {
            System.err.println("都执行完毕");
            if (o==null)
            System.exit(0);
        }
        System.out.println(o); 
      }
   }

   public Object makeObj(int type) throws IllegalArgumentException {
      if (type == 1)  
      throw new IllegalArgumentException("不是指定的类型: " + type);
      return new Object();
   }
}

注意事项
保证资源释放:finally块通常用于确保资源(如文件、网络连接、数据库连接等)被正确释放。
避免在finally块中抛出异常:虽然可以在finally块中抛出异常,但这样会覆盖try或catch块中抛出的原始异常。如果需要处理异常,通常应在catch块中完成。
返回语句:如果在try或catch块中有返回语句,并且finally块中也有代码,那么finally块中的代码会在返回之前执行,但finally块中的返回语句会覆盖try或catch块中的返回语句。

 


http://www.kler.cn/a/481829.html

相关文章:

  • 比较procfs 、 sysctl和Netlink
  • 和为0的四元组-蛮力枚举(C语言实现)
  • 使用高云小蜜蜂GW1N-2实现MIPI到LVDS(DVP)转换案例分享
  • 【WPF】使用BitmapImage给Image的Source赋值,并释放原占用资源,避免删除原文件时导致程序崩溃
  • Python3 正则表达式
  • 前端使用Get传递数组形式的数据
  • BigDecimal:高精度数值运算类
  • 深度学习算法:开启智能时代的钥匙
  • Mysql快速列出来所有列信息
  • http
  • 建立时间和保持时间
  • CANopen 学习笔记(1)
  • selenium学习笔记
  • MapReduce完整工作流程
  • Flutter Xcode 16+ iOS 18.1 使用image_pickers无法弹出选择图片的视图问题
  • C语言凯撒密码程序分享
  • 上海亚商投顾:沪指探底回升微涨 机器人概念股午后爆发
  • 二、模型训练与优化(4):模型优化-实操
  • ip属地出省会变吗?怎么出省让ip属地不变
  • spring mvc源码学习笔记之十
  • 【蓝桥杯选拔赛真题60】C++寻宝石 第十四届蓝桥杯青少年创意编程大赛 算法思维 C++编程选拔赛真题解
  • Java 锁:多线程环境下的同步机制
  • 深度学习概述
  • 【Three.js基础学习】34.Earch Shaders
  • Redis 管道技术(Pipeline)
  • 2025新春烟花代码(二)HTML5实现孔明灯和烟花效果