【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前端工程师在开发页面的时候,要写 ...
随机推荐
- BZOJ2120 数颜色 莫队 带修莫队
原文链接https://www.cnblogs.com/zhouzhendong/p/BZOJ2120.html 题目传送门 - BZOJ2120 题意 给定一个长度为 $n$ 的序列 $a$ ,有 ...
- datatable 转list ,list转datatable
方法一: public static IList<T> ConvertToModel(DataTable dt) { // 定义集合 ...
- @Transactional spring 配置事务 注意事项
1. 在需要事务管理的地方加@Transactional 注解.@Transactional 注解可以被应用于接口定义和接口方法.类定义和类的 public 方法上 . 2. @Transaction ...
- Kmeans:利用Kmeans实现对多个点进行自动分类—Jason niu
import numpy as np def kmeans(X, k, maxIt): numPoints, numDim = X.shape dataSet = np.zeros((numPoint ...
- PHP环境配置错误处理
[Linux apt-get 更换源] 1.问题描述:按照网上的教程编辑源列表文件后发现apt-get update 出现各种错误,导致更新失败 sudo vim /etc/apt/sources.l ...
- String、StringBuffer、StringBuilder的比较
看String类的定义:public final class String...{private final char value[];} 看AbstractStringBuilder类的定义:abs ...
- python数据结构之栈
栈 栈(stack),有些地方称为堆栈,是一种容器,可存入数据元素.访问元素.删除元素,它的特点在于只能允许在容器的一端(称为栈顶端指标,英语:top)进行加入数据(英语:push)和输出数据(英语: ...
- 如何调用wasm文件?
如果用C/C++导出wasm模块,方法名会默认带_前缀:如果是asm.js转成了wasm模块,方法名就不带_前缀. 一.c到js 二.wasm和js 三.小尝试 这里主要汇集了自己初学webAssem ...
- es6那些事儿
一.参考链接 http://www.ecma-international.org/ecma-262/6.0/index.html http://www.ecma-international.org/e ...
- vue中的jsx
一.配置文件package.json { "name": "vuetest", "version": "1.0.0", ...