Java try catch 应该在 for 循环里面还是外面?(面试)

时间上, 其实算是无差别。内存上, 如果没出异常,其实也是无差别。

但是如果出现了异常, 那就要注意了。

一、try  catch  在 for 循环外面

public static void tryOutside() {  try {  for (int count = 1; count <= 5; count++) {  if (count == 3) {  //故意制造一下异常  int num = 1 / 0;  } else {  System.out.println("count:" + count + " 业务正常执行");  }  }  } catch (Exception e) {  System.out.println("try catch  在for 外面的情形, 出现了异常,for循环显然被中断");  }  
}  

try  catch  在for循环外面的时候, 如果for循环过程中出现了异常, 那么for循环会终止。

二、try  catch  在 for 循环里面 

public static void tryInside() {  for (int count = 1; count <= 5; count++) {  try {  if (count == 3) {  //故意制造一下异常  int num = 1 / 0;  } else {  System.out.println("count:" + count + " 业务正常执行");  }  } catch (Exception e) {  System.out.println("try catch  在for 里面的情形, 出现了异常,for循环显然继续执行");  }  }  
}  

 try  catch  在 for 循环里面时, 如果for循环过程中出现了异常,异常被catch抓掉,不影响for循环继续执行。

        其实就是看业务。需要出现异常就终止循环的,就放外头;

        不需要终止循环,就搞里头。但要注意一点,别在for循环里面去查库调用第三方啥的,这些操作,如果必要,需要慎重考虑了。

        可以在tryInside()方法内部的循环中添加统计内存消耗的代码。这样,每次循环执行时都可以记录一下内存的使用情况,这样,在每次循环执行前后,都会输出可用内存的情况,可以通过比较前后两次输出的内存情况来评估内存的消耗情况。

public class CompositeTest {public static void main(String[] args){tryInside();}public static void tryInside() {Runtime runtime = Runtime.getRuntime();long begintime = System.currentTimeMillis();for (int count = 1; count <= 5; count++) {long beginMemory = runtime.freeMemory(); // 获取当前可用内存System.out.println("Free Memory before iteration " + count + ": " + beginMemory);try {if (count == 3) {// 故意制造一下异常int num = 1 / 0;} else {System.out.println("count:" + count + " 业务正常执行");}} catch (Exception e) {System.out.println("try catch  在for 里面的情形, 出现了异常,for循环显然继续执行");}long endtime = System.currentTimeMillis();System.out.println(endtime - begintime);long lastMemory = runtime.freeMemory(); // 获取循环后的可用内存System.out.println("Free Memory after iteration " + count + ": " + (beginMemory - lastMemory)/10000);}}
}

try catch 放在 for 循环里面 ,因为出现异常不会终止 for循环。所以如果真的存在大批量业务处理全是异常,有那么一定的内存消耗情况。

        如果说代码没出错的话, try catch 在 for 里面 和 外面 ,都是几乎没区别的。因为 异常try catch 其实一早编译完就标记了 如果从哪儿(from)出现异常,会直接去到(to)的那行代码去。

  • Exception table : 当前函数程序代码编译涉及到的异常;

  • type :异常类型;

  • target:表示异常的处理起始位;

  • from:表示 try-catch 的开始地址;

  • to:表示 try-catch 的结束地址;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/4908.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用pdf.js实现pdf的预览与打印

使用pdf.js实现PDF的预览与打印可以通过以下步骤完成&#xff1a; 1. 首先&#xff0c;在项目中安装pdf.js库。可以使用npm或yarn来安装pdf.js&#xff0c;运行以下命令&#xff1a; npm install pdfjs-dist2. 创建一个包含PDF预览和打印功能的组件。可以创建一个单独的组件用…

【数据结构初阶】时间复杂度和空间复杂度详解

今天我们来详细讲讲时间复杂度和空间复杂度&#xff0c;途中如果有不懂的地方可翻阅我之前文章。 个人主页&#xff1a;小八哥向前冲~-CSDN博客 数据结构专栏&#xff1a;数据结构【c语言版】_小八哥向前冲~的博客-CSDN博客 c语言专栏&#xff1a;c语言_小八哥向前冲~的博客-CS…

matlab新手快速上手6(引力搜索算法)

本文根据一个较为简单的matlab引力搜索算法框架详细分析蚁群算法的实现过程&#xff0c;对matlab新手友好&#xff0c;源码在文末给出。 引力搜索算法简介&#xff1a; 引力搜索算法是一种启发式优化算法&#xff0c;最初于2009年由伊朗的Esmat Rashedi、Hossein Nezamabadi-p…

uniapp 对接facebook第三方登录

1.登录facebook开发者中心&#xff0c;打开我的应用页面在这里插入图片描述 2.创建应用 3.选择类型 4.填写信息 5.添加登录 6.添加平台 安卓密钥生成【需要 Java 环境!!! 和 openssl库】 Google Code Archive 的 Windows 版 openssl-for-windows OpenSSL 库 将openssl下载到…

如何利用FMEA进行不良事件分析——FMEA软件

免费试用FMEA软件-免费版-SunFMEA FMEA&#xff08;Failure Modes and Effects Analysis&#xff09;是一种预防性的质量工具&#xff0c;它帮助识别产品或过程中可能的故障模式&#xff0c;评估其对系统的影响&#xff0c;并优先处理那些对系统性能影响最大的故障模式。在医疗…

新时代教师口才演讲稿(3篇)

新时代教师口才演讲稿&#xff08;3篇&#xff09; 新时代教师口才演讲稿&#xff08;一&#xff09; 尊敬的各位领导、亲爱的同事们&#xff1a; 大家好&#xff01; 今天&#xff0c;我站在这里&#xff0c;深感荣幸与激动。在这个新时代里&#xff0c;教师的口才不仅仅是传…

webpack3升级webpack4遇到的各种问题汇总

webpack3升级webpack4遇到的各种问题汇总 问题1 var outputNamecompilation.mainTemplate.applyPluginWaterfull(asset-path,outputOptions.filename,{......)TypeError: compilation.mainTemplate.applyPluginsWaterfall is not a function解决方法 html-webpack-plugin 版…

上市公司-双重差分模型手动匹配绿色企业数据及参考资料

01、数据简介 双重差分模型&#xff08;DID&#xff0c;Differences-in-Differences&#xff09;是一种用于估计某个政策或处理效果的经济计量学模型。通过双重差分模型&#xff0c;可以控制一些不易观察的个体特征和时间趋势&#xff0c;以更准确地估计政策的效应。将绿色企业…

文件上传漏洞(upload-labs)

目录 一、文件上传漏洞 1.什么是文件上传漏洞 常见的WebShell 2.文件上传产生漏洞的原因 二、文件上传绕过 &#xff08;一&#xff09;客服端绕过-JS验证 1.前端验证 upload-labs第一关 &#xff08;二&#xff09;绕过黑名单验证 黑名单验证 1.特殊解析后缀 upl…

快速掌握Yarn:软件包管理工具的安装与使用指南【写作AI免费】

首先&#xff0c;这篇文章是基于笔尖AI写作进行文章创作的&#xff0c;喜欢的宝子&#xff0c;也可以去体验下&#xff0c;解放双手&#xff0c;上班直接摸鱼~ 按照惯例&#xff0c;先介绍下这款笔尖AI写作&#xff0c;宝子也可以直接下滑跳过看正文~ 笔尖Ai写作&#xff1a;…

Linux第十五章

&#x1f436;博主主页&#xff1a;ᰔᩚ. 一怀明月ꦿ ❤️‍&#x1f525;专栏系列&#xff1a;线性代数&#xff0c;C初学者入门训练&#xff0c;题解C&#xff0c;C的使用文章&#xff0c;「初学」C&#xff0c;linux &#x1f525;座右铭&#xff1a;“不要等到什么都没有了…

MySQL随便聊----之MySQL的调控按钮-启动选项和系统变量

-------MySQL是怎么运行的 基本介绍 如果你用过手机&#xff0c;你的手机上一定有一个设置的功能&#xff0c;你可以选择设置手机的来电铃声、设置音量大小、设置解锁密码等等。假如没有这些设置功能&#xff0c;我们的生活将置于尴尬的境地&#xff0c;比如在图书馆里无法把手…

Hive安装部署

Apache Hive是一个基于Hadoop分布式文件系统、使用MapReduce算法执行大规模离线数据分析的数据仓库&#xff0c;本文主要描述Hive的安装部署。 如上所示&#xff0c;Hive总体应用架构图&#xff0c;其中&#xff0c;Hive基于HBase或者使用Hadoop分布式文件系统执行MapReduce的分…

注意力机制(四)(多头注意力机制)

​&#x1f308; 个人主页&#xff1a;十二月的猫-CSDN博客 &#x1f525; 系列专栏&#xff1a; &#x1f3c0;《深度学习基础知识》 相关专栏&#xff1a; ⚽《机器学习基础知识》 &#x1f3d0;《机器学习项目实战》 &#x1f94e;《深度学习项目实…

react报错:Warning: Each child in a list should have a unique “key“ prop.

我是万万没想到的&#xff0c;使用Popconfirm不添加key属性也会报错&#xff1a; react-refresh:160Warning: Each child in a list should have a unique "key" prop. Check the render method of Cell. Seehttps://reactjs.org/link/warning-keys for more informa…

Unity C#的底层原理概述

文章目录 前言IL与IL2CPP总结 前言 看到底层二字&#xff0c;会感到很高深&#xff0c;好似下一秒就要踏入深渊。实际上&#xff0c;对于C#底层的理解非常简单&#xff0c;比冒泡排序这种基础算法还要简单。 底层的两种机制&#xff1a;Mono和IL2CPP。 IL2CPP其中的"2&qu…

Swift中TableView的原理

在Swift中&#xff0c;TableView是一种可滚动的视图控件&#xff0c;它以列表的形式显示数据。TableView的原理是基于MVC&#xff08;Model-View-Controller&#xff09;模式&#xff0c;它将数据展示和用户交互的逻辑分离开来。 TableView的原理可以概括为以下几个步骤&#…

持续总结中!2024年面试必问 100 道 Java基础面试题(十八)

上一篇地址&#xff1a;持续总结中&#xff01;2024年面试必问 100 道 Java基础面试题&#xff08;十七&#xff09;-CSDN博客 三十五、什么是包装类型&#xff1f;有什么用&#xff1f; 什么是包装类型&#xff1f; 在Java中&#xff0c;包装类型是指那些用于封装基本数据类…

Zookeeper集群部署和单机部署

Zookeeper集群部署和单机部署 Zookeeper单机部署 cd /data/softwarewget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.12/zookeeper-3.4.12.tar.gztar -zxvf zookeeper-3.4.12.tar.gz mv zookeeper-3.4.12 /data/apps/zookeeper-3.4.12cd /data/apps/zookeeper…

nginx--安装

yum安装 官方包链接&#xff1a;nginx: Linux packages 官方yum源链接&#xff1a;nginx: Linux packages 配置yum源 [rootlocalhost ~]# yum install -y nginx [nginx-stable] namenginx stable repo baseurlhttp://nginx.org/packages/centos/$releasever/$basearch/ gp…