首页 新闻 搜索 专区 学院

为什么我都已经return了,还报必须return的错?为什么我在catch处理语句后面加上(throw new runtimeException(e);)后就不报错了呢?并没有再加一个return

0
[已解决问题] 解决于 2016-05-13 23:23
1     public List<Book> findAll(){
2         String sql="select * from book";
3         try {
4             return qr.query(sql,new BeanListHandler<Book>(Book.class));
5         } catch (SQLException e) {
6             System.out.println("huhu");//出错的时候也需要
7         }
8     }
远远木有的主页 远远木有 | 菜鸟二级 | 园豆:204
提问于:2016-05-11 22:04
< >
分享
最佳答案
0

汗,如果没有走到return就进入了catch怎么办?是不是就不返回了?

奖励园豆:5
Supper_litt | 小虾三级 |园豆:783 | 2016-05-11 22:20

难道系统不应该先try再进catch吗?如果try里面没有异常,根本就不会处理catch中的语句

远远木有 | 园豆:204 (菜鸟二级) | 2016-05-11 22:24

@远远木有: 问题是,你的程序都没有跑,别人怎么知道会不会有异常呢,既然你确定不会有异常干嘛加上try catch呢?

所以catch里面还是需要return才行的。

Supper_litt | 园豆:783 (小虾三级) | 2016-05-11 22:25

@Supper_litt: 哦,我修改问题了,你在看看

远远木有 | 园豆:204 (菜鸟二级) | 2016-05-11 22:31

@远远木有: 你又抛出了问题相当于没有调用这个函数,而是直接产生了一个异常,所以不需要返回值了。。。

Supper_litt | 园豆:783 (小虾三级) | 2016-05-11 22:44

@Supper_litt: 嗯嗯,我想明白了,谢谢啦

远远木有 | 园豆:204 (菜鸟二级) | 2016-05-11 22:45
其他回答(1)
0

没玩儿过Java,你应该在catch里面throw也行吧?要么throw,要么return。。。

顾晓北 | 园豆:9963 (大侠五级) | 2016-05-12 09:43
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册