2 tuochichuang09 tuochichuang09 于 2016.05.07 20:50 提问

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方法没有返回值,请问这是为什么?

4个回答

CSDNXIAON
CSDNXIAON   2016.05.07 21:02

java try catch finally中的return问题
java try-catch以及循环的问题
java try-catch以及循环的问题
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

chenhchen1994
chenhchen1994   2016.05.07 21:06

try catch 是进行异常 处理的, 当你的程序有可崩溃的时候~ 你为了防止崩溃 用 try catch 处理 让程序抛出一个异常。而你的这句e.printStackTrace();代码 应该不是抛出异常信息吧。所以就崩溃了

suwu150
suwu150   2016.05.07 22:22
Even_sneck
Even_sneck   2016.05.08 01:20

Java不是这么学得,要把基础理解透,不要觉得那些不重要:
1、对于异常,作为一们成熟的程序员,是要进行处理的,而不是throws抛出,这是不负责任的

2、任何一个函数(方法)都是有几个方面组成:访问控制、方法名,返回值,参数。。。
public static byte[] toBytes(Object object) 你写的这个,你的返回值是“byte[]”类型的,可是你没有使用return 返回
如果你不需要有返回值,直接改成void不就行了。

tuochichuang09
tuochichuang09 我有使用return 返回 bytes,这是byte[]类型的变量
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!