java try catch处理问题

先上代码:

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不就行了。