先上代码:
public static byte[] toBytes(Object object) {
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
ObjectOutputStream objectOutputStream = null;
try {
objectOutputStream = new ObjectOutputStream(byteArrayOutputStream);
objectOutputStream.writeObject(object);
byte[] bytes = byteArrayOutputStream.toByteArray();
return bytes;
} catch (IOException e) {
throw new RuntimeException(e.getMessage(),e);
//e.printStackTrace();
} finally {
try {
objectOutputStream.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
我这样写是没问题的,但是如果我将第一个catch语句中的
``` throw new RuntimeException(e.getMessage(),e);
注释掉,换成
e.printStackTrace();
Eclipse就会报错,说toBytes方法没有返回值,请问这是为什么?
try catch 是进行异常 处理的, 当你的程序有可崩溃的时候~ 你为了防止崩溃 用 try catch 处理 让程序抛出一个异常。而你的这句e.printStackTrace();代码 应该不是抛出异常信息吧。所以就崩溃了
http://blog.csdn.net/suwu150/article/details/51311780
Java不是这么学得,要把基础理解透,不要觉得那些不重要:
1、对于异常,作为一们成熟的程序员,是要进行处理的,而不是throws抛出,这是不负责任的
2、任何一个函数(方法)都是有几个方面组成:访问控制、方法名,返回值,参数。。。
public static byte[] toBytes(Object object) 你写的这个,你的返回值是“byte[]”类型的,可是你没有使用return 返回
如果你不需要有返回值,直接改成void不就行了。