关于JAVA t中try-catch的用法?一个try-catch块 是不是只能 捕获一个错误呀?多重的try-catch(一个try中有N个catch)是能捕获多种错误还是捕获多个错误?具体说一下,书上都把我弄晕了 ,了还有嵌套的try-ca
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/05 23:33:52
关于JAVA t中try-catch的用法?一个try-catch块 是不是只能 捕获一个错误呀?多重的try-catch(一个try中有N个catch)是能捕获多种错误还是捕获多个错误?具体说一下,书上都把我弄晕了 ,了还有嵌套的try-ca
关于JAVA t中try-catch的用法?
一个try-catch块 是不是只能 捕获一个错误呀?
多重的try-catch(一个try中有N个catch)是能捕获多种错误还是捕获多个错误?
具体说一下,书上都把我弄晕了 ,了
还有嵌套的try-catch 是怎么样的逻辑(运行顺序)
麻烦各位;了
关于JAVA t中try-catch的用法?一个try-catch块 是不是只能 捕获一个错误呀?多重的try-catch(一个try中有N个catch)是能捕获多种错误还是捕获多个错误?具体说一下,书上都把我弄晕了 ,了还有嵌套的try-ca
你所说的一个try-catch只能捕获一个错误是对的,不论后面跟着多少个catch都一样,try-catch语句是这样执行的:首先逐个从上到下执行try块中的java语句,如果没有发生异常,则执行完try块后跳过catch块(不论有多少个catch都跳过).如果try块中某条语句存在异常,则跳到相对应的catch块中(发生什么异常,就跳到什么catch里,如果没有准确对应的,就跳到父类异常的catch中),执行完该catch块中的语句,然后跳过其它的catch块,接着往下走,明白了么?总之,try-catch只能处理一个异常,这就是为什么后面通常跟finally,要有一个统一的出口.
如果还不明白,你就在环境下用一段代码试试就好了,不要着急,随便找两个异常一试就OK!
比如:
try{
int b=25/0;
Thread.sleep(2000);
}
catch(ArithmeticException e){
System.out.println("除零错误!");
}
catch(InterruptedException e){
System.out.println("延时错误!");
}
上面这个例子就会在屏幕上显示"除零错误!"四个字,因为众所周知,任何数字不能除0,所以25/0是错的,它抛出ArithmeticException(数学异常),则直接跳进第一个catch块内,而没有进入第二个块,尽管Thread.sleep(2000);也有异常.