一个try可以跟进多个catch语句,用于处理不同情况。当一个try只能匹配一个catch。
我们可以写多个catch语句,但是不能将父类型的exception的位置写在子类型的excepiton之前,因为这样父类型肯定先于子类型被匹配,所有子类型就成为废话。JAVA编译出错。
在try,catch后还可以再跟一子句finally。其中的代码语句无论如何都会被执行(因为finally子句的这个特性,所以一般将释放资源,关闭连接的语句写在里面)。
如果在程序中书写了检查(抛出)exception但是没有对这个可能出现的检查结果进行处理,那么程序就会报错。
而如果只有处理情况(try)而没有相应的catch子句,则编译还是通不过。
如何知道在编写的程序中会出现例外呢
1. 调用方法,查看API中查看方法中是否有已检查错误。
2. 在编译的过程中看提示信息,然后加上相应的处理。
package TomText;
//使用间接递归方法,求斐波那契数列第n项。
public class TomText_49 {
public static void main(String[] args) {
int x1 = 1;
int sum = 0;
int n = 7;
for (int i = 1; i <= n; i++) {
x1 = func1(i);
sum = sum + x1;
}
System.out.println("sum=" + sum);
}
static int func1(int a){
int b;
b=func2(a);
return b;
}
static int func2(int b) {
if (b> 2)
return (func1(b - 1) + func1(b - 2));
else
return 1;
}
}
是的,你的理解是正确的。在Java和其他支持try-catch结构的编程语言中,一个try可以跟随多个catch语句,用于处理try块中抛出的不同异常。当try块中的代码抛出一个异常时,程序会立即跳转到与该异常类型相匹配的catch块中。如果没有找到匹配的catch块,程序将终止并抛出未捕获异常。
以下是一个Java的例子:
try {
// Some code that may throw exceptions
} catch (IOException e) {
// Handle IOException
} catch (SQLException e) {
// Handle SQLException
} catch (Exception e) {
// Handle any other exception
}
在这个例子中,如果try块中的代码抛出IOException或SQLException,那么对应的catch块将处理这些异常。如果没有抛出这些异常,那么最后的catch块(捕获所有异常)将处理任何其他异常。