为了账号安全,请及时绑定邮箱和手机立即绑定

写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;//抛出新异常

}

}

}


正在回答

1 回答

ChainTest类的main方法catch块里e.getStackTrace();改成e.printStackTrace();
1 回复 有任何疑惑可以回复我~
#1

DrJexus 提问者

还有test2里面司机一滴酒亲人两行泪这句话在演示案例中改成了e,这是为什么呢?
2019-08-27 回复 有任何疑惑可以回复我~
#2

无忧21st 回复 DrJexus 提问者

catch块里是DrunkException对象 e是DrunkException对象返回的错误信息 司机一滴酒,亲人两行泪这段话不也是错误提示信息嘛,用e替换了而已
2019-08-27 回复 有任何疑惑可以回复我~
#3

无忧21st 回复 DrJexus 提问者

e是错误信息对象
2019-08-27 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

写DrunkException的时候出现了一个问题:类型 serializable 类 DrunkException 未声明类型为 long 的静态终态 serialVersionUID 字段

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信