Java:这个catch里面的return有什么说道吗?不加不行么?

private List<Object> getFailData(String hisdataDir){ List<Object> objectList = new ArrayList<Object>(); try { ...... return objectList; } catch (Exception e) { e.printStackTrace(); return null;//?????? }}

不是已经抛出异常了么?为什么还需要return一个null呢?这个return null;是不是加不加都行呢?
private List<Object> getFailData(String hisdataDir){ List<Object> objectList = new ArrayList<Object>(); try { ...... return objectList; } catch (Exception e) { e.printStackTrace(); return null; }}

不加可以啊 可以改成throw 其他异常,要看你具体需要如何处理。
捕捉到异常后可以向外层抛出,该处以下的代码就不再执行了
捕捉到异常后在catch块里处理完毕后,不在向外抛出,代码依然可以向下执行,这模式可以认为是异常的恢复模式。
你的帖的代码中就是捕捉到异常后打印下异常堆栈 然后返回一个null
你贴的代码中异常捕捉了没有抛出,抛出异常需要加上代码:throw e;或者将捕捉到的异常转换为其他异常。
温馨提示:内容为网友见解,仅供参考
第1个回答  2014-01-03
因为你的函数需要返回值,所以只能2种结果,一种是返回一个值,另一种就是抛出异常
catch(Exception e) {
e.printStackTrace();
return null;
}

catch(Exception e) {
throw e;
}本回答被提问者采纳
第2个回答  2014-01-03
你好!加一个return null 是为了返回一个空值给调用的函数,而非一串异常信息,这样子的好处是当调用这个方法出现异常的时候,可以对这个方法的返回值进行判断,这个也可以返回你指定的信息。当然如果没什么特别处理,也可不加,不过这是一种好的习惯,呵呵
第3个回答  2014-01-03
是的 . 这个是异常打印出来了 一般处理向外层抛 throw new Exception();
第4个回答  2014-01-03
加不加都可以

java中return的作用?
根据方法的定义,每一个方法都有返回类型,该类型可以是基本类型,也可以是对象类型,同时每个方法都必须有个结束标志,因此,return起到了这个作用。在返回类型为void的方法里面,有个隐含的return语句,因此,在void方法里面可以省略不写。

java中类的一个方法中的返回值(return),为什么总是写在try\/catch的后面...
会,不管异常怎么执行,异常会不会发生,finally总会被执行,try\/catch\/finally 执行步骤是这样的:先执行try里面的语句,如果try里面有异常,则执行catch里面的语句,接着执行finally语句。。如果try语句里没异常,则直接执行finally里面语句。。。finally语句执行完了,接着执行外面的语句啊,肯定可以执行到...

java中为啥try中的return语句不行,而必须写在函数的末尾即catch后?
你只在try中写了return 要是发生了异常进了catch 那不就没了return 你的方法声明了返回 你的程序里就必须有对应的return

java中return的作用?
Java中的return语句总是用在方法中,作为一个无条件的分支,无需判断条件即可发生。return语句主要有两个用途:一方面用来表示一个方法返回的值,另一方面是指它导致该方法退出,并返回那个值。在返回类型为void的方法里面,有个隐含的return语句,因此,在void方法里面可以省略不写。用在非void返回值类型的...

java中return的用法
,另一方面是指它导致该方法退出,并返回那个值。根据方法的定义,每一个方法都有返回类型,该类型可以是基本类型,也可以是对象类型,同时每个方法都必须有个结束标志,因此,return起到了这个作用。在返回类型为void的方法里面,有个隐含的return语句,因此,在void方法里面可以省略不写。

java异常中try或catch语句中可以有return语句吗?如有return会执行finall...
try或catch中都可以有return语句,如果遇到return会先执行finally后执行return;只有一种情况特殊,就是代码中有System.exit(1);的存在,return才不会执行

java关于有返回值有try\/catch块的方法的问题
你要先理解你调用的方法可能会出现某些异常 我们程序为了处理这异常所以需要try\/catch块 你在try块里面return只是程序正常的时候的返回值 程序也有可能会出现异常,就走不到对应的正常返回值 所以需要在外面再return一个null 后面调用这方法的时候可以判断返回值,如果是null就说明程序出错了 ...

Java异常catch中return的问题
因为是先执行最下面的return语句,这时候的i=1;最后才执行finally里面的语句块

Java中,return的具体用法!
1、如果一个方法有返回值,那么必须出现return。2、一个方法的返回值为void,也可以出现return,但是后面什么也不可以写,直接写return ;3、return 语句后面的内容都不在执行,这是与break不同的地方,二者虽然都可以跳出循环,但是break跳出循环,后面的额代码还将继续执行。4、3的一个特殊情况是有...

...try中的return可以返回,但是在catch中的return返回什么?_百度...
catch中的return是指:在try{ 。。。 }代码块中,如果抛出异常, 则会进入 catch { ... },如果没有抛出异常,代码不会执行catch { ... }。就像是代码执行流程的两个分支。另外,C#编译器要求所有函数所有的分支必须返回值,正如代码中注释所说的:“;\/\/如果不写return的话,会说函数MyInt...

相似回答