求指教

qian_happy 2013-06-30 04:04:04
import java.io.*;
public class ManyException
{
public static void main(String args[])
{
int i;
int arr[]={1,2,3,4};
for(i=0;i<5;i++)
{
try
{
System.out.println("arr["+i+"]/"+i+"="+(arr[i]/i));
}

catch(ArrayIndexOutOfBoundsException e) //捕获数组下标越界异常
{
System.out.println("捕获数组下标越界异常");
}

catch(ArithmeticException e) //捕获算术异常
{
System.out.println("异常类名称是:"+e);
}

catch(Exception e) //捕获一般异常
{
System.out.println("捕获" + e.getMessage() + "异常!");
}

finally
{
System.out.println("finally i="+i);
}
}
System.out.println("Continue!!");
}
怎么觉得最后的finally去掉和没去掉没什么影响,对于finally的用法不太懂,求指教!
...全文
78 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
tony4geek 2013-06-30
  • 打赏
  • 举报
回复
引用 楼主 u011251496 的回复:
import java.io.*; public class ManyException { public static void main(String args[]) { int i; int arr[]={1,2,3,4}; for(i=0;i<5;i++) { try { System.out.println("arr["+i+"]/"+i+"="+(arr[i]/i)); } catch(ArrayIndexOutOfBoundsException e) //捕获数组下标越界异常 { System.out.println("捕获数组下标越界异常"); } catch(ArithmeticException e) //捕获算术异常 { System.out.println("异常类名称是:"+e); } catch(Exception e) //捕获一般异常 { System.out.println("捕获" + e.getMessage() + "异常!"); } finally { System.out.println("finally i="+i); } } System.out.println("Continue!!"); } 怎么觉得最后的finally去掉和没去掉没什么影响,对于finally的用法不太懂,求指教!
+1
StevenLoveMaggie 2013-06-30
  • 打赏
  • 举报
回复
finally{}语句是一定要执行的,一般想关闭数据库的连接、回收垃圾等放在finally。 try{}必须要与catch/finally一起用。
public class  TryTest
{
	public static void main(String[] args) 
	{
		int a = 3;
		int i = 0;
		int result = 0;
		try{
			//出现异常
				result = a/i;
			//这句将不执行
				i++;
		}catch(Exception e){
			
		}finally{
			//输出结果为0
			System.out.println(i);
		}
	}
}
在try{}语句中即使使用return语句,finally{}语句还是要执行;除非是关闭JVM或关闭电脑。

50,545

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧