黑马程序员技术交流社区
标题:
异常的学习,异常的问题
[打印本页]
作者:
欧德林
时间:
2012-4-1 18:26
标题:
异常的学习,异常的问题
class ExceptionDemo9
{
public static void func()
{
try
{
throw new Exception();
}
finally
{
System.out.println("b");
}
}
public static void main(String[] args)
{
try
{
func();
System.out.println("a");
}
catch (Exception e)
{
System.out.println("c");
}
System.out.println("d");
}
}
这个编译是失败的,为什么呢 ?
虽然异常看过了,但是对于这章知识还很模糊。
以后这个异常能遇到吗? 异常不是计算机给我们的吗?自己搞一个异常做撒 ?
作者:
zhouxp3323
时间:
2012-4-1 20:16
因为你执行到func方法的时候,抛出了一个Exception异常,没有进try catch处理,因此编译会失败,你可以抛出一个RuntimeException,然后再编译运行的时候就没有问题了,并且结果是:b c d,因为func方法抛出了异常,所以会在main方法里执行catch块的代码,而不会打印a
作者:
葛尧
时间:
2012-4-1 23:55
抛出了异常(非RuntimeException) 没有在本函数内捕捉处理,
所以要在方法func上声明一下,让其他调用者检测代码来处理。
自己搞个异常可以搞一些"有意思"的事。。
作者:
胡元
时间:
2012-4-2 07:35
2楼3楼已经解释了为神马你的代码会编译失败,那么我来解释下为神马我们编程时要自定义异常,比如我们描述人的对象,人有性别和年龄,
class Person
{
private String sex; int age;
person()
{
this.sex=sex;this.age = age;
}
}
调用者调用时传个,性别“公”,年龄“-24”,这样编译时虚拟机时可以通过的,但是实际上传的数值没有意义,所以这是我们就自定义一个异常抛出去,告诉调用者他传的数值有问题!明白了么?
作者:
yangshang1
时间:
2012-4-2 07:53
class ExceptionDemo9
{
public static void func() throws Exception
{
try
{
throw new Exception();
}
finally
{
System.out.println("b");
}
}
public static void main(String[] args)
{
try
{
func();
System.out.println("a");
}
catch (Exception e)
{
System.out.println("c");
}
System.out.println("d");
}
}
不是runtimeexception 必须catch或throws 异常
作者:
袁野
时间:
2012-4-2 07:59
呵呵都解释的很全。。飘过
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2