当前位置: 首页 > news >正文

网站建设与规划心得体会河南公司网站建设

网站建设与规划心得体会,河南公司网站建设,做服装广告素材网站有哪些,亚洲影视传媒有限公司SpringMVC异常处理 一、引言 一般项目开发中有两类异常#xff1a; 预期异常运行时异常 其中预期异常一般是由程序员主动抛出的异常#xff0c;而运行时异常很难控制#xff0c;只能通过规范代码编写、增加测试等手段来减少该类异常。 通常项目是分层开发的#xff0c;由…SpringMVC异常处理 一、引言 一般项目开发中有两类异常 预期异常运行时异常 其中预期异常一般是由程序员主动抛出的异常而运行时异常很难控制只能通过规范代码编写、增加测试等手段来减少该类异常。 通常项目是分层开发的由外到内可分为前端项目、前端控制器、控制层、业务层、持久层。如果在控制层、业务层或持久层出现异常SpringMVC框架如何处理呢我们可以在前端控制器中定义全局异常处理器之后如果控制层、业务层或持久层出现异常直接往外抛异常即可。关于全局异常处理器有如下定义方法 1. 基于注解的异常处理   2. 基于配置的异常处理 二、示例 2.1 基于注解的异常处理 首先定义一个业务异常该异常作为预期异常在项目中手动抛出。 public class CustomException extends RuntimeException {private AppHttpCodeEnum appHttpCodeEnum;public CustomException(AppHttpCodeEnum appHttpCodeEnum){this.appHttpCodeEnum appHttpCodeEnum;}public AppHttpCodeEnum getAppHttpCodeEnum() {return appHttpCodeEnum;} }其中AppHttpCodeEnum类是一个枚举类用于指定http响应状态码和响应信息定义如下。 public enum AppHttpCodeEnum {// 成功段0SUCCESS(200,操作成功),// 登录段1~50NEED_LOGIN(1,需要登录后操作),LOGIN_PASSWORD_ERROR(2,密码错误),// TOKEN50~100TOKEN_INVALID(50,无效的TOKEN),TOKEN_EXPIRE(51,TOKEN已过期),TOKEN_REQUIRE(52,TOKEN是必须的),// SIGN验签 100~120SIGN_INVALID(100,无效的SIGN),SIG_TIMEOUT(101,SIGN已过期),// 参数错误 500~1000PARAM_REQUIRE(500,缺少参数),PARAM_INVALID(501,无效参数),PARAM_IMAGE_FORMAT_ERROR(502,图片格式有误),SERVER_ERROR(503,服务器内部错误),// 数据错误 1000~2000DATA_EXIST(1000,数据已经存在),AP_USER_DATA_NOT_EXIST(1001,用户数据不存在),DATA_NOT_EXIST(1002,数据不存在),// 数据错误 3000~3500NO_OPERATOR_AUTH(3000,无权限操作),NEED_ADMIND(3001,需要管理员权限);int code;String errorMessage;AppHttpCodeEnum(int code, String errorMessage){this.code code;this.errorMessage errorMessage;}public int getCode() {return code;}public String getErrorMessage() {return errorMessage;} }之后通过ControllerAdvice和ExceptionHandler注解定义全局异常处理器分别捕获自定义的业务异常和不可控异常。 ControllerAdvice //控制器增强类 public class ExceptionCatch {/*** 处理不可控异常* param e* return*/ExceptionHandler(Exception.class)ResponseBodypublic ResponseResult exception(Exception e){e.printStackTrace();return ResponseResult.errorResult(AppHttpCodeEnum.SERVER_ERROR);}/*** 处理可控异常 自定义异常* param e* return*/ExceptionHandler(CustomException.class)ResponseBodypublic ResponseResult exception(CustomException e){return ResponseResult.errorResult(e.getAppHttpCodeEnum());} } 其中ResponseResult类是一个向前端返回的统一结果类。 public class ResponseResultT implements Serializable {private String host;private Integer code;private String errorMessage;private T data;public ResponseResult() {this.code 200;}public ResponseResult(Integer code, T data) {this.code code;this.data data;}public ResponseResult(Integer code, String msg, T data) {this.code code;this.errorMessage msg;this.data data;}public ResponseResult(Integer code, String msg) {this.code code;this.errorMessage msg;}public static ResponseResult errorResult(int code, String msg) {ResponseResult result new ResponseResult(code, msg);return result;}public static ResponseResult errorResult(AppHttpCodeEnum enums) {return setAppHttpCodeEnum(enums, enums.getErrorMessage());}public static ResponseResult errorResult(AppHttpCodeEnum enums, String errorMessage) {return setAppHttpCodeEnum(enums, errorMessage);}public static ResponseResult okResult(int code, String msg) {ResponseResult result new ResponseResult(code, msg);return result;}public static ResponseResult okResult(Object data) {ResponseResult result setAppHttpCodeEnum(AppHttpCodeEnum.SUCCESS, AppHttpCodeEnum.SUCCESS.getErrorMessage());if (data ! null) {result.setData(data);}return result;}public static ResponseResult okResult(AppHttpCodeEnum enums) {ResponseResult result setAppHttpCodeEnum(enums);return result;}public static ResponseResult setAppHttpCodeEnum(AppHttpCodeEnum enums) {return okResult(enums.getCode(), enums.getErrorMessage());}private static ResponseResult setAppHttpCodeEnum(AppHttpCodeEnum enums, String errorMessage) {return okResult(enums.getCode(), errorMessage);}public Integer getCode() {return code;}public void setCode(Integer code) {this.code code;}public String getErrorMessage() {return errorMessage;}public void setErrorMessage(String errorMessage) {this.errorMessage errorMessage;}public T getData() {return data;}public void setData(T data) {this.data data;}public String getHost() {return host;}public void setHost(String host) {this.host host;} }2.2 基于配置的异常处理 SpringMVC提供了一个自定义异常处理器的接口我们通过实现HandlerExceptionResolver接口来捕获异常。 public class GlobalExceptionResolver implements HandlerExceptionResolver { ​Overridepublic ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler,Exception exception) {//根据实际业务编写代码return null;} }然后在spring配置文件中配置刚才新建的全局异常处理器或者加上Component注解。 !--全局异常捕捉 -- bean class包名.GlobalExceptionResolver /
http://www.zqtcl.cn/news/337627/

相关文章:

  • 手机网站 需求模板3000元建设个人网站
  • 请人做网站域名和主机thinkphp网站开发实战教程
  • 做地产网站哪家好饮料网站建设价格
  • 外管局网站 报告怎么做wordpress 阿里
  • 湘潭做网站 去磐石网络山西自助建站费用低
  • 温州哪里做网站比较好昆明网页制作开发
  • 网站建设淘宝客网站建设与网页设计入门
  • 网站推广营销联系方式俄语免费网站制作
  • 广东企业网站seo点击软件搭建本地网站
  • 商丘做网站的价格专业网站制作哪家强
  • 瑞安微信网站软件公司网站设计与制作
  • 片头网站网站建设服装在线商城实训报告
  • wordpress做企业网站怎样做网页推广
  • 网站建设售后服务安全维护企业网站开发 外文文献
  • 网站设计英文翻译系统开发的五个阶段
  • 成华区门户网站拍卖网站开发多少钱
  • html设计网站wordpress 评论增加字段
  • 搭建正规网站小程序开发难不难
  • 做静态网站用什么软件自己编写代码建设微网站
  • 备案网站ipoa系统主要干什么的
  • 杭州专业网站建设在哪里wordpress主题重置
  • 仿wordpress站赣州专业网站推广
  • 网站开发需要多长时间python链接wordpress
  • 网上交易网邯郸网站seo
  • wordpress图片后加载外链seo服务
  • 婚庆公司网站建设腾讯广告建站工具
  • 焦作建设厅网站wordpress调用视频播放器
  • 网站版面做好江苏省建设工程设计施工图审核中心网站
  • 智能网站平台wordpress同步头条
  • 做采集的网站有流量吗广州建设学校