为什么不执行try中的return直接跳到catch中的return也不执行return前面那句话?

baidu_34109896 2016-04-09 04:25:07
public User Register(User user){
try {
this.dao.insert(user);
Log.d("UserManager", "try");
Log.d("UserManager", "try");
Log.d("UserManager", "try");
Log.d("UserManager", "try");
Log.d("UserManager", "try");
return user;
} catch (Exception e) {
ToastUtil.showMessage(context, "insert出错");
return null;
}
}

debug 显示能执行try中return前的语句,当执行到return user前的最后一个Log.d以后程序直接跳到catch中的return null;也没有执行前面ToastUtil这一句,这是为什么?所以是哪一句出了问题才会catch到异常而不执行return null?
...全文
431 4 打赏 收藏 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
摘星猿 2016-04-10
  • 打赏
  • 举报
回复
this.dao.insert(user); 这一句报错了 所以执行不下去了 直接进入catch里 catch 里是 子线程 你Toast 又报一次错。所以这里面很多错误 你先 搞定 this.dao.insert(user); 里面的错误 在删除掉catch 里的TOAST.
摘星猿 2016-04-10
  • 打赏
  • 举报
回复
引用 3 楼 u013783167 的回复:
this.dao.insert(user); 这一句报错了 所以执行不下去了 直接进入catch里 catch 里是 子线程 你Toast 又报一次错。所以这里面很多错误 你先 搞定 this.dao.insert(user); 里面的错误 在删除掉catch 里的TOAST.
没有return null 就是ToastUtil.showMessage(context, "insert出错"); 报错。
节操在此 2016-04-09
  • 打赏
  • 举报
回复
大哥你在catch里把Exception的堆栈打印出来看看啊
真的一滴血 2016-04-09
  • 打赏
  • 举报
回复
return 语句不会报错啊? return null 是因为传的user是null吗

80,490

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧