首页
开源软件
问答
博客
翻译
资讯
Gitee
众包
活动
专区
源创会
高手问答
开源访谈
周刊
公司开源导航页
登录
注册
资讯
软件
博客
专区
问答
活动
工具
培训
众包
APP
Gitee
新媒体
OSC 公众号
硬核 + 嬉笑怒骂
OSC 微博
技术圈大 V 出没
OSC 视频号
AI 百科
OSC 今日头条
微头条显行业百态
LFOSSA 公众号
LF 开源软件学园
Gitee AI 公众号
大模型托管平台
Gitee 服务号
研发管理解决方案
登录
注册
优雅的处理你的Java异常
本文介绍 本文仅按照业务系统开发角度描述异常的一些处理看法.不涉及java的异常基础知识,可以自行查阅 《Java核心技术 卷I》 和 《java编程思想》 可以得到更多的基础信息. 写在前面的话 笔者文笔功力尚浅,言语多...
作者:
叶知泉
优雅的处理你的Java异常
分享
复制链接
README badge(
)
社交分享
微信
QQ
微博
米
米一木
2018/08/29 21:28
小哥哥,棒棒
回复
举报
叶知泉
2018/06/19 15:38
引用来自“marinesky”的评论
其实这个'优雅'是有适用的场景的,因为ServiceException是继承RuntimeException,在发生异常时或业务检查时并不支持有返回值,在某些场景未必适用
嗯,你说得对,考虑篇幅不可能一文全部点到,文中也有指出特定异常情况到实例代码。
感谢不吝赐教。
回复
举报
marinesky
2018/06/19 14:58
其实这个'优雅'是有适用的场景的,因为ServiceException是继承RuntimeException,在发生异常时或业务检查时并不支持有返回值,在某些场景未必适用
回复
举报
o
ooknight
2018/06/13 17:31
引用来自“menxin”的评论
抱歉,感觉并不优雅
请说出哪里不好, 或者你优雅的方案
回复
举报
Lasagna
2018/06/13 13:50
实打实的经验之谈,思路可以借鉴一下,具体到自己的项目再说吧,写的很棒!
回复
举报
小山羊
2018/06/13 10:51
支持一个
回复
举报
叶知泉
2018/06/12 17:53
引用来自“11路”的评论
和我设计的异常处理是一样的,只是自定义异常分类楼主是怎么考虑的呢?目前我们就只定义了一个业务异常类
引用来自“maradona”的评论
定义一个和多个差别不大,但在分布式系统中如果没有良好的日志系统,还是每个服务一个异常类,至少一眼就能定位出现问题的服务来,但都需要有共同的基类
楼上说的很有道理,我没有讨论分布式情况.按说分布式应该对自己的系统节点,异常模块,发送的环境等做一个描述,然后抛出.这样对定位很有帮助.
回复
举报
maradona
2018/06/12 17:47
引用来自“11路”的评论
和我设计的异常处理是一样的,只是自定义异常分类楼主是怎么考虑的呢?目前我们就只定义了一个业务异常类
定义一个和多个差别不大,但在分布式系统中如果没有良好的日志系统,还是每个服务一个异常类,至少一眼就能定位出现问题的服务来,但都需要有共同的基类
回复
举报
叶知泉
2018/06/12 16:05
引用来自“11路”的评论
和我设计的异常处理是一样的,只是自定义异常分类楼主是怎么考虑的呢?目前我们就只定义了一个业务异常类
抱歉内容不全,见更新.
回复
举报
IOIOIOIOIOIO
2018/06/12 15:57
写的很好!
回复
举报
11路
2018/06/12 15:20
和我设计的异常处理是一样的,只是自定义异常分类楼主是怎么考虑的呢?目前我们就只定义了一个业务异常类
回复
举报
MGLEE
2018/06/12 15:12
引用来自“tonysb”的评论
service层这么写没毛病,楼主说controller层不能try..catch,那如果这个controller层就是要在调用service层之后,出现错误进行错误页面的跳转,这种情况下,controller不try..catch,该怎么进行处理?
也能捕获滴 完全不用在controller 你try catch
回复
举报
橙橙cheng
2018/06/12 15:00
抱歉,感觉并不优雅
回复
举报
开源中国的CTO
2018/06/12 11:34
可以不在controller里面处理,而是由过滤器统一处理,除非controller需要对异常进行重新包装
回复
举报
幽玄太华
2018/06/12 10:34
一己之见而已。
回复
举报
叶知泉
2018/06/12 08:34
引用来自“tonysb”的评论
service层这么写没毛病,楼主说controller层不能try..catch,那如果这个controller层就是要在调用service层之后,出现错误进行错误页面的跳转,这种情况下,controller不try..catch,该怎么进行处理?
笔者文笔功力尚浅.若有文笔含糊不清之处.请指正,多见谅.仔细回顾了一下,文中并没有明确说不能在controller 中try-catch,只是大多数情况下无需.
回复
举报
tonysb
2018/06/12 08:20
service层这么写没毛病,楼主说controller层不能try..catch,那如果这个controller层就是要在调用service层之后,出现错误进行错误页面的跳转,这种情况下,controller不try..catch,该怎么进行处理?
回复
举报
叶知泉
2018/06/11 19:29
那样开发者需要关心的多了一样。交给框架统一处理方便点。☺☺☺
回复
举报
Jack-Xue
2018/06/11 17:13
在controller 使用try-catch进行处理,还是可以捕捉到异常啊
回复
举报
maradona
2018/06/11 10:53
👍
回复
举报
回复 @
{{ emoji.type }}
{{emojiItem.symbol}}
评论用户
o
米
推荐博客
三大操作系统入场,谁能掌控 Rust 的未来?
肖滢
·
昨天 16:47
2 评论
除了递归算法,要如何优化实现文件搜索功能
威哥爱编程
·
昨天 15:28
0 评论
怎么办?用DolphinScheduler调度执行复杂的HiveSQL时无法正确识别符号
DolphinScheduler社区
·
昨天 11:16
0 评论
HarmonyOS ArkTS用户首选项的开发及测试
waylau
·
昨天 09:55
1 评论
驭势科技借助 Zadig:实现自动驾驶服务的持续交付与运维优化
Zadig云原生交付
·
昨天 09:46
0 评论
【Abyss】Android平台应用级系统调用拦截框架
iofomo
·
昨天 09:12
0 评论
JDK23如约而至,数十种新玩法,你期待哪一种?
江南一点雨
·
昨天 08:14
0 评论
Apache SeaTunnel Zeta引擎源码解析(三) Server端接收任务的执行流程
Apache SeaTunnel
·
前天 22:08
0 评论
Skyeye云这几年的经历
Skyeye-pro
·
前天 16:55
1 评论
Mistral AI 嵌入模型现可通过 Elasticsearch Open Inference API 获得
elasticstack
·
前天 16:55
2 评论
删除一条评论
评论删除后,数据将无法恢复
取消
确定
©OSCHINA(OSChina.NET)
工信部
开源软件推进联盟
指定官方社区
社区规范
深圳市奥思网络科技有限公司版权所有
粤ICP备12009483号
顶部
引用来自“marinesky”的评论
其实这个'优雅'是有适用的场景的,因为ServiceException是继承RuntimeException,在发生异常时或业务检查时并不支持有返回值,在某些场景未必适用
感谢不吝赐教。
引用来自“menxin”的评论
抱歉,感觉并不优雅引用来自“11路”的评论
和我设计的异常处理是一样的,只是自定义异常分类楼主是怎么考虑的呢?目前我们就只定义了一个业务异常类引用来自“maradona”的评论
定义一个和多个差别不大,但在分布式系统中如果没有良好的日志系统,还是每个服务一个异常类,至少一眼就能定位出现问题的服务来,但都需要有共同的基类引用来自“11路”的评论
和我设计的异常处理是一样的,只是自定义异常分类楼主是怎么考虑的呢?目前我们就只定义了一个业务异常类引用来自“11路”的评论
和我设计的异常处理是一样的,只是自定义异常分类楼主是怎么考虑的呢?目前我们就只定义了一个业务异常类引用来自“tonysb”的评论
service层这么写没毛病,楼主说controller层不能try..catch,那如果这个controller层就是要在调用service层之后,出现错误进行错误页面的跳转,这种情况下,controller不try..catch,该怎么进行处理?引用来自“tonysb”的评论
service层这么写没毛病,楼主说controller层不能try..catch,那如果这个controller层就是要在调用service层之后,出现错误进行错误页面的跳转,这种情况下,controller不try..catch,该怎么进行处理?