黑马程序员技术交流社区
标题:
异常练习代码
[打印本页]
作者:
张聪珉
时间:
2013-8-11 21:02
标题:
异常练习代码
class Test
{
public static String output="";
public static void foo(int i)
{
try
{
if(i==1)
throw new Exception();
output+="1"; //throw单独存在下面有语句编译不能通过不是吗?这句话不算语句?编译可以通过?
}
catch(Exception e)
{
output+="2";
return;
}
finally
{
output+="3";
}
output+="4";
}
public static void main(String args[])
{
foo(0);
System.out.println(output);//134
foo(1);
System.out.println(output); //13423
复制代码
作者:
yan
时间:
2013-8-11 21:33
throws在方法声明部分使用,表示该方法可能产生此异常,如果在方法声明处使用了throws声明异常,则该方法产生异常也不必捕获,会直接把异常抛出到调用该方法的地方,如果你在方法里面使用了但如果有异常你不用抛出那么你就要用
try catch语句处理的.因此你的方法外面可以不使用throws声明异常
作者:
布易般
时间:
2013-8-11 21:38
本帖最后由 布易般 于 2013-8-11 21:42 编辑
try
{
if(i==1)
// throw new Exception();
{
throw new Exception(); //我把你的语句转化成这样,在if代码块throw下面添加一句会报错!在代码块之外,没关系哦
System.out.println("这句话会报错哦,编译无法通过!");
}
output+="1"; //throw单独存在下面有语句编译不能通过不是吗?这句话不算语句?编译可以通过?
//你这句话是在if代码块之外
}
小结:
throw的【作用域范围】是在【if的代码块内】,这这个范围内,如果throw下面还有语句,编译就会通不过哦!
作者:
masterV
时间:
2013-8-11 22:56
if(i==1)
throw new Exception();
这句话其实是下面语句的简写:
if(i==1)
{
throw new Exception();
}
这样来看的话,throw下面还有语句么?是不是单独存在的。
与君共同进步。
作者:
以防万一
时间:
2013-8-13 22:19
亲,如问题已解决请将分类的未解决改为已解决。
以后的问题贴也要及时更改分类哦~
保持队形,谢谢合作
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2