【发布时间】:2015-04-08 15:54:34
【问题描述】:
我有以下代码。
Animal.java
public class Animal{
String name;
int age;
public Animal(){
name="default name";
age=0;
}
}
猫.java
public class Cat extends Animal{
int legs;
public Cat(){
super();
this.legs=10;
}
}
Test.java
import java.io.*;
public class Test{
public static void main(String[] args){
try{
Cat c1 = new Cat();
FileOutputStream fileStream = new FileOutputStream("myobjects.ser");
ObjectOutputStream objectStream = new ObjectOutputStream(fileStream);
objectStream.writeObject(c1);
}catch(Exception e){
e.printStackTrace();
}
}
}
此代码可以正常工作。没有抛出异常。我期待一个异常,因为 cat 类没有实现可序列化的接口。
为什么我的代码有效?
【问题讨论】:
-
我遇到了一个异常。重新编译并重新运行您的代码。
-
我没有得到任何东西。使用 open-jdk7
-
我收到 java.io.NotSerializableException。检查好
-
e.printStackTrace() 将它打印到您可能看不到的错误流中。这就是为什么您认为代码会在静默完成时工作。
-
System.out.println(e)
标签: java serialization exception-handling