java tyr{}catch语句

 

try代码块里放的是尝试执行的代码

catch是用于捕捉处理异常的 
 try {可能出现异常的代码
  } catch(异常类名A e){
  如果出现异常类A类异常,那么执行该代码
  } ...(catch可以有多个)
   finally {
必须要执行的代码   处理完异常后 在 抛出新的异常前 必须执行的代码段
  }

 提前返回值,finally中对变量赋值无效

public static void main(String[] args) {
	public static int demo() {
		int i=1;
		try {
			 i=i/0;
			 System.out.println(i);
		} catch (Exception e) {
			i=3;
			System.out.println(i);
			return i;
		}finally {
			i=4;
			System.out.println(i);
		}
		return i;
	//结论: 如果catch中有return存在,且返回值已被确定,finally中对返回值的修改将不起作用
	}
}

finally会在每一次异常捕捉执行完后执行

public static void main(String[] args) {
	int i=1;
	try {
		 i=i/0;
		 System.out.println(i);
	} catch (Exception e) {
		System.out.println(i);
		throw new RuntimeException();//抛出新的异常,finally是 处理完异常后 在 抛出新的异常前必须执行的代码段
	}finally {
		System.out.println(i+ 1);
	}
	System.out.println(i + 2);
	}
}

内外层嵌套try catch的话 从内到外执行,且内部catch执行完的话外部将不会捕捉到异常,但finally会执行  但这里不太懂为什么外部finally比内部最终输出程序执行要早

public static void main(String[] args) {
	try {
		try {
		     int num[]=new int[5];
		     num[6]=2;    
		}catch (Exception e) {
			System.err.println("内catch");
		}finally {
			System.err.println("内finally");
		}
		System.out.println("内输出");	
	}catch (Exception e) {
		System.err.println("外catch");
	}finally {
		System.err.println("外finally");	
	}
	System.out.println("外输出");
}

贴一个大神的链接,开头文案参考于他 java中try...catch处理异常

天龙八部——内功篇 文章被收录于专栏

日常工作遇到的基础积累

全部评论

相关推荐

找工作勤劳小蜜蜂:自我描述部分太差,完全看不出想从事什么行业什么岗位,也看不出想在哪个地区发展,这样 会让HR很犹豫,从而把你简历否决掉。现在企业都很注重员工稳定性和专注性,特别对于热爱本行业的员工。 你实习的工作又太传统的it开发(老旧),这部分公司已经趋于被淘汰,新兴的互联网服务业,比如物流,电商,新传媒,游戏开发和传统的It开发有天然区别。不是说传统It开发不行,而是就业岗位太少,基本趋于饱和,很多老骨头还能坚持,不需要新血液。 工作区域(比如长三角,珠三角,成渝)等也是HR考虑的因素之一,也是要你有个坚定的决心。否则去几天,人跑了,HR会被用人单位骂死。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务