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

来源:1-7 Java 中的异常链

DrJexus

2019-08-27 12:18

这个代码有错:

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回答

  • 无忧21st
    2019-08-27 17:16:44
    已采纳
    ChainTest类的main方法catch块里e.getStackTrace();改成e.printStackTrace();

    无忧21st 回复DrJexu...

    e是错误信息对象

    2019-08-27 18:42:17

    共 3 条回复 >

Java入门第三季

Java中你必须懂得常用技能,不容错过的精彩,快来加入吧

409792 学习 · 4340 问题

查看课程

相似问题