写DrunkException的时候出现了一个问题:类型 serializable 类 DrunkException 未声明类型为 long 的静态终态 serialVersionUID 字段
这个代码有错:
package imooc.exception.test;
public class DrunkException extends Exception {
public DrunkException() {}
public DrunkException(String message) {
super(message);
}
}
那个类那边提示类型 serializable 类 DrunkException 未声明类型为 long 的静态终态 serialVersionUID 字段,这是什么意思呀?
下面是ChainTest类,看看有没有错:
package imooc.exception.test;
public class ChainTest {
/*
* 这个类完成的工作:第一个方法(Test1):抛出“喝大了”异常;
* 第二个方法(Test2):调用Test1,捕获“喝大了”异常,并包装成运行时异常,继续抛出;
* main方法中调用test2,尝试捕获test2方法抛出的异常
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
ChainTest ct = new ChainTest();
try {
ct.test2();
}catch(Exception e) {
e.getStackTrace();
}
}
public void test1() throws DrunkException {
throw new DrunkException("喝车别开酒!");
}
public void test2() {
try {
test1();
} catch (DrunkException e) {
// TODO 自动生成的 catch 块
//e.printStackTrace();这个就不需要了
RuntimeException newExc = new RuntimeException("司机一滴酒,亲人两行泪");//新建一个RuntimeException,起名叫newExc
newExc.initCause(e);//调用newExc的initCause方法并把捕获的DrunkException放进去
throw newExc;//抛出新异常
}
}
}