可能存在这种情况,能用代码控制的逻辑,就是正常的流程。比如登陆成功、失败,这都是正常的流程,使用return。 能用代码逻辑处理的,譬如空指针,数组越界等,都实现判断是否存在,存在是存在的逻辑,不存在是不存在的逻辑,这里我也是使用的return。 其他的不可预见的错误,我也不知道的,就让他throw吧,在最外层方法catch中打印下日志,然后return。 ---------------------------------------然并卵的分割线----------------------------------------- 简而言之,逻辑都是return控制,try-catch就是抓异常打错误日志辅助逻辑控制的。 上面是我平时的处理方法。欢迎来喷。 ps:貌似我也是有理论依据的,有个先人曾告诉me:try-catch这样的情况虚拟机都采用异常机制去处理,如果如果访问量过高死都不知道是怎么死的。
而且我觉得return一般用在js上。java的return强制结束不经常见。
[quote=引用 16 楼 biaogexiangjia 的回复:] [quote=引用 14 楼 shijing266 的回复:] 那么纠结... 如果你的service方法需要返回一个实体对象什么,这个对象是你需要用到的对象,那么这个时候,建议throw 一个异常 如果你的方法只是单纯的void ,你return 也没啥错,不过如果还有后续方法的话,就会继续执行,如果需要强制中断的话,建议还是throw 如果需要继续执行下面的方法体,那就用return吧
[quote=引用 5 楼 biaogexiangjia 的回复:] [quote=引用 3 楼 u012906938 的回复:] 单纯地throws Exception或者return其实是对异常的一种不负责任的行为,当你觉得你的代码块会出现异常时,最好使用try catch去捕捉异常,譬如有IO流的操作代码块,不仅使用try catch去捕捉,而且最后还要用finally去关闭流。 在你提到的用户登陆错误的问题中,如果你用try catch去捕捉异常,然后你发现了用户登陆错误,那么你就应该在catch模块中对异常进行处理了,譬如可以用logger记录下错误,然后再选择需要返回什么信息与页面给用户,当然用户并不知道你后台进行了什么处理,如果这时候登陆报错了,你什么都不做来个return,那服务器那边就出来个500错误是吧 关于这个异常处理,关键还是要知道程序会出什么异常,当然还可以用一些自定义异常类来使自己的代码严谨一点。
[quote=引用 14 楼 shijing266 的回复:] 那么纠结... 如果你的service方法需要返回一个实体对象什么,这个对象是你需要用到的对象,那么这个时候,建议throw 一个异常 如果你的方法只是单纯的void ,你return 也没啥错,不过如果还有后续方法的话,就会继续执行,如果需要强制中断的话,建议还是throw 如果需要继续执行下面的方法体,那就用return吧
那么纠结... 如果你的service方法需要返回一个实体对象什么,这个对象是你需要用到的对象,那么这个时候,建议throw 一个异常 如果你的方法只是单纯的void ,你return 也没啥错,不过如果还有后续方法的话,就会继续执行,如果需要强制中断的话,建议还是throw 如果需要继续执行下面的方法体,那就用return吧
我的理解是:throws是软处理,它可以捕获你代码块潜在的错误,并给予错误信息的提示,以及对应的处理方式,是一种友好的,帮助我们管理程序的方式; return是硬处理:这是我们人为的根据已知结果作为条件,来加到程序中做终止程序运行的方式。 比如:你说的用户登录情况,结果是已知的:如果经查询数据库用户登入的用户名不存在,就直接return了,然后前台根据return的值,来做友好的提示:用户名不存在,请注册。 云云... 对于程序在JVM中跑,可能存在未知的情况,这时就需要try catch捕获异常了,用throws抛出。
[quote=引用 3 楼 u012906938 的回复:] 单纯地throws Exception或者return其实是对异常的一种不负责任的行为,当你觉得你的代码块会出现异常时,最好使用try catch去捕捉异常,譬如有IO流的操作代码块,不仅使用try catch去捕捉,而且最后还要用finally去关闭流。 在你提到的用户登陆错误的问题中,如果你用try catch去捕捉异常,然后你发现了用户登陆错误,那么你就应该在catch模块中对异常进行处理了,譬如可以用logger记录下错误,然后再选择需要返回什么信息与页面给用户,当然用户并不知道你后台进行了什么处理,如果这时候登陆报错了,你什么都不做来个return,那服务器那边就出来个500错误是吧 关于这个异常处理,关键还是要知道程序会出什么异常,当然还可以用一些自定义异常类来使自己的代码严谨一点。
67,543
社区成员
225,859
社区内容
加载中
试试用AI创作助手写篇文章吧