Java中for循环中的的try-catch
异常处理
当for循环遇上try-catch
首先是不建议在循环体内部进行try-catch操作,效率会非常低,这里仅仅是测试这种情况,具体的业务场景建议还是不要在循环里try-catch
@Test
public void forThrow(){
final int size = 6;
for (int i=0; i<size; i++){
if(i > 3){
throw new IllegalArgumentException(i+" is greater than 3");
}
System.out.println(i);
}
}
上面执行了一个for循环,当i大于5就抛出异常,这里由于没有捕获异常,程序直接终止。
下面来看看捕获异常后的结果
@Test
public void forThrowException(){
final int size = 6;
for (int i=0; i<size; i++){
try {
if(i > 3){
throw new IllegalArgumentException(i+" is greater than 3");
}
}catch (IllegalArgumentException e){
e.printStackTrace();
}
System.out.println(i);
}
}
由于内部捕获了异常,程序打印出堆栈,程序没有终止,直到正常运行结束。
进行数据运算时,如果抛出了异常,数据的值会不会被改变呢?
@Test
public void forExceptionEditValue(){
final int size = 6;
int temp = 12345;
for (int i=0; i<size; i++){
try {
temp = i / 0;
}catch (ArithmeticException e){
e.printStackTrace();
}
System.out.println("i = "+i+", temp = "+temp);
}
}
可以看到,当想要改变temp的值的时候,由于数据运算抛出了异常,temp的值并没有改变!
Java中for循环中的的try-catch的更多相关文章
- java增强for循环中获取index
java增强for循环中获取index http://rensanning.iteye.com/blog/2003205
- spring中for循环中事务
1.需求:批量插入一批数据,不用spring jdbc的批处理,用for循环插入数据. 2.遇到的问题:在for循环中,当一个插入不成功,前面插入成功的数据也将回滚. 3.初始设计:在service中 ...
- JS中For循环中嵌套setTimeout()方法的执行顺序
在For循环中执行setTimeOut()方法的代码,执行顺序是怎样的呢? 代码如下 function time() { for(var i= 0;i<5;i++){ setTimeout(fu ...
- Java集合类ArrayList循环中删除特定元素
在项目开发中,我们可能往往需要动态的删除ArrayList中的一些元素. 一种错误的方式: <pre name="code" class="java"&g ...
- java,for循环中的穷举、迭代、冒泡例题
1.100以内与7相关的数 //100以内与7相关的数: public static void main1(String[] args) { for(int i=1;i<=100;i++){ i ...
- java的for循环中遇到异常抛出后继续循环执行
@Testpublic void loopTryCatchTest() throws Exception { Map<String, Object> a = new HashMap(); ...
- python中for循环中的循环变量
废话不多说,代码伺候: for i in range(3): print("hello") print(i) 运行结果如下: 从上面的例子可以看出,for循环里面的循环变量i作用域 ...
- java 在循环中删除数组元素
在写代码中经常会遇到需要在数组循环中删除数组元素的情况,但删除会导致数组长度变化. package com.fortunedr.thirdReport; import java.util.ArrayL ...
- Java 循环中标签的作用
continue和break可以改变循环的执行流程,但在多重循环中,这两条语句无法直接从内层循环跳转到外层循环.在C语言中,可以通过goto语句实现多重循环的跳转,但在非循环结构中使用goto语句会使 ...
随机推荐
- Django之Django debug toolbar调试工具
一.安装Django debug toolbar调试工具 pip3 install django-debug-toolbar 如果出错命令为 pip install django_debug_tool ...
- linux 乌班图 安装pycharm
1.通过vmware安装ubuntu系统2.安装完成后,登录ubuntu,通过普通用户 s14登录,密码redhat3.下载pycharm到ubuntu系统中 -可以通过python -m http. ...
- django-BaseCommand自带的权限分组
note: 应该是这样的结构,并且commands名字是固定的. 执行: python manage.py initgroup initgroup.py # -*- coding: utf-8 - ...
- 轻松解决oracle11g 空表不能exp导出的问题。
解决方法: 1插入一条数据(或者再删除),浪费时间,有时几百张表会累死的.2创建数据库之前使用代码: Sql代码 alter system set deferred_segment_creation ...
- ROS进阶学习手记 7 -- RViz仿真实例1
[任务2]: 用simulator: RViz 工具,完成对小车的建模,名字drive RViz = dvrv, 用 dvrv_node 发布topic和数据格式,向它发送位置指令,使它能接受 ...
- hive设置参数的方法
1.修改环境变量 ${HIVE_HOME}/conf/hive-site.xml 2.命令行参数 -e : 执行短命令 -f : 执行文件(适合脚本封装) -S : 安静模式,不显示MR的运行过程 ...
- Flex学习笔记--多层菜单按钮
<?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="ht ...
- js 在光标位置插入内容
原文:https://blog.csdn.net/smartsmile2012/article/details/53642082 createDocumentFragment()用法: https:/ ...
- beego orm 时间相差八小时
使用beego框架,前端调用api插入一条数据到mysql,时间差了8个小时,fuck!!! 解决办法: 在db的url后面加上时区- dbDataSource = root:test@tcp(192 ...
- 抛出异常 exception
throw raise raise Exception.CreateFmt(sFileWithNoExt, [FileName]);


