你的try语句块是想给变量value赋值,但是没有成功.但是try..catch语句依然会执行的,value取的是你第一次的赋值100.清楚了吗?
1、数组第一个元素100被赋给value变量并打印100
2、try语句抛出异常,被catch语句捕获,并再次打印value变量值100
3、……
不是100那是多少呢? 你第二次取值 异常了 value的没有被改变的 没有被赋值
引用别人其他问题的回答:
在java运算符中,“=”是赋值运算符,他的优先级最低,而且,他表示的是赋值,也就是等号右边的值赋值给等号左边,所以,是先执行等号右边的运算,再将结果赋值给等号左边。
我觉得是这个原因吧,当执行右边的ex.getValue()就已经出现出现错误了,所以语句还没有执行完全呢0.0
赋值不成功 value就还是原来的值呗
我把6改成了4,为什么直接就跳过了 结果就只有两个数字100和60,为什么不是100,20,60呢,意思是如果try,catch中的语句本来没问题,不会异常但却被抛出异常,结果会跳过try,catch吗?你们说的我想通了,谢谢了
catch语句里 value值还是100,因为try抛出异常 catch捕获
下边越界了。。你的那个数组索引最大是5。给个六。出异常。。赋值失败进入catch块。如果是4。也不会失败。。正常执行。所以会赋值成功。就会改变value的值。