关于java异常抛出和捕捉的问题?
try{
.........
.........
}catch(Exception1 e){
.........
.........
}
catch(Exception2 e){
.........
.........
}
里面有异常了,这里的e会得到什么东西啊?不明白啊!!是不是得到一个ExceptionX的实例?那有什么意义呢?
编译系统会自己知道就是哪种异常类呢?
------解决方法--------------------------------------------------------
首先:这里的e不能重复定义
其次:e是一个Exception(或其子类)的实例,有该类的说明。你可以用e.getMessage()获得该异常的信息,也可以用e.printStackTrace()将异常堆栈打印出来,这样有助于调试,确定异常出现位置。
------解决方法--------------------------------------------------------
e是一个Exception的一个实例,可以得到异常信息
------解决方法--------------------------------------------------------
你在
try{
.........
.........
}
里出现了Exception
你的Catch就会依次捕获,
如果没有匹配的,
就会throw出去你的程序。
------解决方法--------------------------------------------------------
编译器是可以知道是什么异常的
之所以用异常处理,是为了在编写成序时能够快速的找到错误的原因
在C中没有这样的机制,所以如果要判断是不是执行正确就要自己判断,然后返回一个整形根据它来判断
Java中就提供这个机制来解决这个问题。
------解决方法--------------------------------------------------------
e是一个Exception的一个实例,可以得到异常信息
------解决方法--------------------------------------------------------
如
try{
定义文件,打开,读写
.........
.........
}
catch(FileNotFoundException e1){
.........
.........
}
catch(IOException e2){
.........
.........
}
就会依次捕获两种异常并相应处理