V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Vimax
V2EX  ›  Java

异常应该在 controller 统一处理还是在 service 处理?

  •  1
     
  •   Vimax · 2020-08-07 14:02:59 +08:00 · 4407 次点击
    这是一个创建于 1568 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如果不包含事务,则将异常在 service 中直接处理。 如果 service 中包含事务则将异常抛到 controller 处理。

    有更好的异常处理方法吗?

    • controller

    处理 service 中包含事务,抛过来的异常

    • service

    service 异常,如果有事务抛到 controller;没有事务则直接则处理异常

    • manager

    manger 异常抛到 service

    • mapper
    13 条回复    2020-08-09 21:31:51 +08:00
    wangyanrui
        1
    wangyanrui  
       2020-08-07 14:17:20 +08:00   ❤️ 1
    看起来像是 Java 系?@ControllerAdvice 可解
    JRay
        2
    JRay  
       2020-08-07 14:22:17 +08:00
    我是直接全局处理的...
    Tokiomi
        3
    Tokiomi  
       2020-08-07 14:23:22 +08:00
    反正最外层,微服务的话有可能没有 controller
    Jonz
        4
    Jonz  
       2020-08-07 14:25:04 +08:00
    全局异常捕获处理
    mccreefei
        5
    mccreefei  
       2020-08-07 15:05:29 +08:00
    业务感兴趣的异常自己 catch,否则全局 ControllerAdvice 处理
    qwerthhusn
        6
    qwerthhusn  
       2020-08-07 15:31:44 +08:00
    Controller 和 Service 全程无视异常,用 Interceptor 处理,ControllerAdvice 也行
    unco020511
        7
    unco020511  
       2020-08-07 17:19:57 +08:00
    不都是全局处理吗
    Troevil
        8
    Troevil  
       2020-08-07 17:21:22 +08:00
    统一收集,然后分发异常处理
    Kontinue
        9
    Kontinue  
       2020-08-07 17:22:19 +08:00
    代码异常自己处理,业务异常全局处理
    jimmyismagic
        10
    jimmyismagic  
       2020-08-07 19:35:10 +08:00
    ExceptionHandler 吧,搞不定的尽管扔出去
    daimubai
        11
    daimubai  
       2020-08-07 23:47:11 +08:00
    自定义异常,然后 throw,全局处理
    iyangyuan
        12
    iyangyuan  
       2020-08-08 18:28:38 +08:00 via iPhone
    感兴趣的捕获,不感兴趣的忽略交给全局
    simonlu9
        13
    simonlu9  
       2020-08-09 21:31:51 +08:00
    统一异常,然后全局处理,第三方库的异常自己觉得不影响业务功能可以在调用时候 catch 掉,然后 log 日志,我现在是这么干的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   945 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 22:36 · PVG 06:36 · LAX 14:36 · JFK 17:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.