【Web】Web开发中的异常处理方案
我认为最合理的做法:
1、dao层不捕获异常、不抛出异常:spring框架将底层的数据库checked异常封装成unchecked异常了
2、service层捕获异常,并抛出自定义unchecked异常,异常中不定义状态码:checked异常默认情况事务不会回滚
3、controller层捕获异常,并抛出自定义异常,异常类中定义需要返回的HTTP状态码:API文档一眼就可以明确所有的返回码
4、exceptionHandler中统一处理所有异常
但是,这样会造成controller比较臃肿,
所以,很多项目使用偷懒的办法,service中抛出的异常定义状态码,controller不捕获保持代码简洁,由exceptionHandler统一处理
这样同时也会有问题:
1、service中的状态码最好是HTTP的状态码
2、如果需要提供API文档,需要从service中搜集查看可能的返回码列表
参考资料:
java web service controller 异常_百度搜索
Java应用后台开发设计之异常封装(一) - - ITeye博客
java web项目整体异常处理机制 - 上善若水任方圆 - ITeye博客
Java-异常机制详解以及开发时异常设计的原则要求 - CSDN博客
Java Web 项目(Spring 项目)异常处理问题 - V2EX
java - 关于Service层异常封装的问题 - SegmentFault 思否
关于Service层异常封装的问题 - 小茗同学的回答 - SegmentFault 思否
java web项目整体异常处理机制 - 上善若水任方圆 - ITeye博客
web开发-java异常从业务层集中抛出,是不是每个控制层方法都要try catch——CSDN问答频道
java - 到底应该在action里面捕捉异常还是在service里面捕捉异常? - SegmentFault 思否
java - 请问业务层方法是抛出一个异常好还是返回一个结果更好 - SegmentFault 思否
Java在Service层异常封装 - EasonJim - 博客园
(5)java - 关于Service层异常封装的问题 - SegmentFault 思否
【Web】Web开发中的异常处理方案的更多相关文章
- web前端开发中常用的尺寸和位置
我们在日常web前端开发过程中,会经常用到各种尺寸和位置.通常是js做动画的时候.轮播图,滚屏动画,粒子,碰撞检测,拖拽,滚动加载等等.这里我将常用的尺寸和位置的获取进行总结,不包括canvas,SV ...
- WEB前端开发中的图片压缩
web前端开发中,图片的重要性不言而喻,而由于一些图片的大小加上现在国内的网速不给力等种种原因,我们非常有必要对网站使用的图片进行压缩,压缩图片必然会带来图片质量的损失,我们要尽可能的在质量降低很小的 ...
- Java Web应用开发中的一些概念
最近在学习Java Web,发现Java Web的概念很多,而且各个概念之间的关系也挺复杂,本篇博客把这些关系总结于此,主要参考的博客附在文章末尾. 概念 服务器 服务器,硬件角度上说就是一台高性能的 ...
- Web前端开发中的MCRV模式(转)
作者: izujian 来源: baiduux 摘要:针对前端开发中基于ajax的复杂页面开发所面临的代码规模大,难以组织和维护,代码复用性.扩展性和适应性差等问题,本文尝试以MVC思想为 基础,结 ...
- Web前端开发中的小错误
Web前端开发中的小错误 错误1:表单的label标签跟表单字段没有关联 利用“for”属性允许用户单击label也可以选中表单中的内容.这可以扩大复选框和单选框的点击区域,非常实用. 错误2:log ...
- Web应用开发中的几个问题
Introduction 由于Ajax技术在Gmail中的成功应用和高性能的V8引擎的推出使得编写Web应用变得流行 起来,使用前端技术也可以编写具有复杂交互的应用.相对于native应用,Web应用 ...
- px em rem在WEB前端开发中的区别
我们都知道基于像素的字体大小所用的单位是px,但是随着响应式设计的不断火热,基于相对字体大小的单位em变开始流行起来.当然,rem也在Web前端开发人员讨论如何更好设置字体大小的讨论话题之列.是不是需 ...
- web前端开发中的浏览器兼容性总结
1.居中问题 div里的内容,IE默认为居中,而FF默认为左对齐,可以尝试增加代码margin: 0 auto; 2.高度问题 两上下排列或嵌套的div,上面的div设置高度(height),如果di ...
- WEB前端开发中的SEO注意点
近几年来,SEO在国内得到了蓬勃的发展,其中很多的SEO技术越来越体现在web前端的一些细节上.要做好SEO,WEB前端这一块也要做必不可少的优化. 这就要求我们WEB前端工程师在开发页面的时候,要写 ...
随机推荐
- HDU4185 Oil Skimming 二分图匹配 匈牙利算法
原文链接http://www.cnblogs.com/zhouzhendong/p/8231146.html 题目传送门 - HDU4185 题意概括 每次恰好覆盖相邻的两个#,不能重复,求最大覆盖次 ...
- BZOJ3862 Little Devil I 树链剖分
原文链接http://www.cnblogs.com/zhouzhendong/p/8081514.html 题目传送门 - BZOJ3862 题意概括 一棵树,n个点,边权为黑或者白,支持3重操作: ...
- Mysql乐观锁与悲观锁
乐观锁和悲观锁是两种常见的资源并发锁设计思路,也是并发编程中一个非常重要的基础理念. Mysql的悲观锁 什么是悲观锁(Pessimistic Lock): 悲观锁的特点是先获取锁,再进行业务操作,即 ...
- 利用log4添加log
應用log4net.dll 新建Global.asax,在cs文件中添加 protected void Application_Start(object sender, EventArgs e) ...
- Leading and Trailing(巧妙利用log解决次方问题)
Sample Input 5 123456 1 123456 2 2 31 2 32 29 8751919 Sample Output Case 1: 123 456 Case 2: 152 936 ...
- Java中System类的相关应用
1.Runtime: public class RuntimeDemo { public static void main(String[] args) { Runtime runtime=Runti ...
- Python库: PrettyTable 模块
一,PrettyTable简介 PrettyTable是python中的一个第三方库,可用来生成美观的ASCII格式的表格: 二,PrettyTable安装 使用PIP即可十分方便的安装PrettyT ...
- 001.Oracle安装部署-本地文件系统
一 环境准备 安装包:linux.x64_11gR2_database_1of2.zip linux.x64_11gR2_database_2of2.zip 二 安装Oracle准备 2.1 用户名/ ...
- SpringBoot多数据源
很多业务场景都需要使用到多数据库,本文介绍springboot对多数据源的使用. 这次先说一下application.properties文件,分别连接了2个数据库test和test1.完整代码如下: ...
- 如何在debug vue-cli建立的项目
因为vue-cli使用了webpack,导致了一些页面报错了位置不精确的问题. 在网上找到了解决方案,在此分享. https://segmentfault.com/q/1010000008757714 ...