V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
jry
V2EX  ›  程序员

Exception 应该在 service、model、controller、function 哪些里面使用呢?

  •  
  •   jry · 2019-06-22 13:21:32 +08:00 · 1956 次点击
    这是一个创建于 2011 天前的主题,其中的信息可能已经有所发展或是发生改变。

    是不是普通公共 function 不应该抛出异常直接 return?

    3 条回复    2019-06-23 15:51:07 +08:00
    mocyx
        1
    mocyx  
       2019-06-22 13:57:26 +08:00
    没有定论
    具体问题具体分析
    chendy
        2
    chendy  
       2019-06-22 17:35:38 +08:00
    具体情况具体分析 +1
    xiaoidea
        3
    xiaoidea  
       2019-06-23 15:51:07 +08:00
    我说下自己的理解,对后端开发也不是很熟,交流一下:
    1. controller 不应该抛出异常,所有 controller 提供的接口都把异常 catch 住,可以通过 @ControllerAdvice+@ExceptionHandler, rest 接口返回的结果用状态码标识是否异常
    2. service 层可以把 checked exception 转换为 runtime exception,这样如果 service 有多层函数调用,不需要每层都处理异常,反正最外层有 controller 统一处理异常了
    没太明白你说的 model 和 function 是什么意思,“是不是普通公共 function 不应该抛出异常直接 return?”,如果是公共 function 类似 util 工具的话,我觉得抛出异常是很正常的,参考 guava 里的各种工具类,有在校验参数时抛出 runtime exception 的,也有抛出 checked exception 的,还得看具体情况
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5413 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 07:38 · PVG 15:38 · LAX 23:38 · JFK 02:38
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.