package com.swift; public class Exception_TestC { public static void main(String[] args) { /*
* 第5题: 有一个类为ClassA,有一个类为ClassB,在ClassB中有一个方法b,此方法抛出异常,在ClassA类中有一个
* 方法a,请在这个方法中调用b,然后抛出异常。在客户端有一个类为TestC,有一个方法为c ,请在这个方法中捕 捉异常的信息。Java异常的处理机制
*
* 如果try或catch中有return,执行try catch finally return,catch的执行看try中是否真有异常
* throw是抛出异常 throws是声明异常,throw用于方法体中,用来抛出一个实际的异常对象,使用throw后,要么使用try
* catch捕获异常,要么使用throws声明异常 catch中可以再次throw抛出异常,以便调用其方法再次捕获并处理
* 自定义异常用于标记业务逻辑的异常,避免与标准异常混淆
*/
new TestC().c();
}
} class A { public void a() throws Exception { new B().b(); } } class B { public void b() {
try {
int a = -1;
if (a < 0) {
throw new MyException("B....不能使用负数..throw by ClassB.methodB");
}
} catch (MyException e) {
e.printStackTrace();
}
} } class TestC{ public void c() { try {
new A().a();
} catch (Exception e) {
e.printStackTrace();
}
}
} class MyException extends Exception {
public MyException(String msg) {
super(msg);
}
}