Java异常与处理原则

异常结构层次

在Java中,异常分为checkedunchecked,他们都在一个分类层次中,如下图。

DEH

其中,红色的异常是checked异常,意味着在一个方法中,他们throw后必须catch或者declare

另一种颜色的为unchecked异常,他们的异常不需要被recover

异常处理

在Java中,调用某方法,就必须处理被调用方法抛出的异常,同时超类也可以用来捕获或者处理子类异常。

调用方法必须处理被调用方法抛出的异常

下面是一个处理异常的程序。我们可以测试一下,如果在一个方法中抛出一个异常,不仅是该方法,而且所有调用该方法的方法都必须声明或抛出异常。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class exceptionTest {
private static Exception exception;

public static void main(String[] args) throws Exception {
callDoOne();
}

public static void doOne() throws Exception {
throw exception;
}

public static void callDoOne() throws Exception {
doOne();
}
}

超类可以用来捕获或处理子类异常

可以使用如下代码验证。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class myException extends Exception{

}

public class exceptionTest {
private static Exception exception;
private static myException myexception;

public static void main(String[] args) throws Exception {
callDoOne();
}

public static void doOne() throws myException {
throw myexception;
}

public static void callDoOne() throws Exception {
doOne();
throw exception;
}
}

这也就是为什么catch子句只有一个父类在语法上安全的原因。



The link of this page is https://blog.nooa.tech/articles/1164dab2/ . Welcome to reproduce it!

© 2018.02.08 - 2024.05.25 Mengmeng Kuang  保留所有权利!

:D 获取中...

Creative Commons License