本帖最后由 michael_wlq 于 2015-9-1 11:37 编辑
在异常处理过程中,throw单独存在时,throw语句下面不能再定义执行语句,因为执行不到会编译报错。【注意】类似的还有continue、break、return等,这些语句后面都不能直接再添加语句。
示例1:
class Demo {
public static void main(String[] args) {
try {
/*把异常封装成一个单独的showExce()方法,该方法可能会抛出异常,也可能不抛出,
所以后面的语句可以正常执行,该程序的输出结果为:BCD
*/
showExce();
System.out.print("A");
} catch(Exception e) {
System.out.print("B");
} finally {
System.out.print("C");
}
System.out.println("D");
}
public static void showExce()throws Exception {
throw new Exception();
}
}
----------------------------------------------------------------------------------------------------------------------------
示例2:
class Demo {
public static void func() {
try {
//该语句肯定会抛出异常,下面的语句肯定不会得到执行,所以会编译失败。
throw new Exception();
System.out.println("A");
} catch(Exception e) {
System.out.println("B");
}
}
public static void main(String[] args) {
try {
func();
} catch(Exception e) {
System.out.println("C");
}
System.out.println("D");
}
}
//编译失败。 因为打印“A”的输出语句执行不到。
记住:throw单独存在,下面不要定义语句,因为执行不到。
|
|