ssm异常捕获和处理

ssm异常捕获和处理

package exception;import lombok.extern.slf4j.Slf4j;
import org.hibernate.HibernateException;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ResponseBody;
import entity.vo.ResponseBodyResult;
import entity.vo.ResultVo;import java.io.IOException;
import java.sql.SQLException;/*** @Description 自定义异常处理程序* @Author zhaohuaqing*/
@ControllerAdvice
@Slf4j
public class ExceptionHandler {/*** @description 自定义空指针异常* @return entity.vo.ResponseBodyResult 异常信息* @author zhaohuaqing* @date 2021/6/11 21:47* @version 1.0*/@org.springframework.web.bind.annotation.ExceptionHandler({NullPointerException.class})@ResponseBodypublic ResponseBodyResult myNullExceptionHandler(NullPointerException e){log.error(e.getMessage());log.error(String.valueOf(e.getCause()));return  ResponseBodyResult.errorOf(ResultVo.NULL_EXCEPTION);}/*** @description 自定义类型强制转换异常* @return entity.vo.ResponseBodyResult 异常信息* @author zhaohuaqing* @date 2021/6/17 15:58* @version 1.0*/@org.springframework.web.bind.annotation.ExceptionHandler({ClassCastException.class})@ResponseBodypublic ResponseBodyResult myClassCastExceptionHandler(ClassCastException e){log.error(e.getMessage());log.error(String.valueOf(e.getCause()));return  ResponseBodyResult.errorOf(ResultVo.CLASS_CAST_EXCEPTION);}/*** @description 操作数据库异常* @return entity.vo.ResponseBodyResult 异常信息* @author zhaohuaqing* @date 2021/6/17 16:00* @version 1.0*/@org.springframework.web.bind.annotation.ExceptionHandler({SQLException.class})@ResponseBodypublic ResponseBodyResult mySQLExceptionHandler(SQLException e){log.error(e.getMessage());log.error(String.valueOf(e.getCause()));return  ResponseBodyResult.errorOf(ResultVo.SQL_EXCEPTION);}/*** @description 输入输出异常* @return entity.vo.ResponseBodyResult 异常信息* @author zhaohuaqing* @date 2021/6/17 16:00* @version 1.0*/@org.springframework.web.bind.annotation.ExceptionHandler({IOException.class})@ResponseBodypublic ResponseBodyResult myIOExceptionHandler(IOException e){log.error(e.getMessage());log.error(String.valueOf(e.getCause()));return  ResponseBodyResult.errorOf(ResultVo.IO_EXCEPTION);}/*** @description 方法未找到异常* @return entity.vo.ResponseBodyResult 异常信息* @author zhaohuaqing* @date 2021/6/17 16:00* @version 1.0*/@org.springframework.web.bind.annotation.ExceptionHandler({NoSuchMethodException.class})@ResponseBodypublic ResponseBodyResult myNoSuchMethodExceptionHandler(NoSuchMethodException e){log.error(e.getMessage());log.error(String.valueOf(e.getCause()));return  ResponseBodyResult.errorOf(ResultVo.NO_SUCH_METHOD_EXCEPTION);}/*** @description 总的异常* @return entity.vo.ResponseBodyResult 异常信息* @author zhaohuaqing* @date 2021/6/17 16:03* @version 1.0*/@org.springframework.web.bind.annotation.ExceptionHandler({Exception.class})@ResponseBodypublic ResponseBodyResult myExceptionHandler(Exception e){log.error(e.getMessage());log.error(String.valueOf(e.getCause()));return  ResponseBodyResult.errorOf(ResultVo.EXCEPTION);}
}
package entity.vo;/*** @Description 视图层统一返回值* @Author zhaohuaqing*/
public class ResponseBodyResult {/*** 返回代码*/private int code;/*** 消息说明*/private String message;/*** 数据*/private Object data;private ResponseBodyResult(int code, String message, Object data) {this.code = code;this.message = message;this.data = data;}private static ResponseBodyResult of(ResultVo resultVo, Object data) {return new ResponseBodyResult(resultVo.getCode(), resultVo.getMsg(), data);}public static ResponseBodyResult okOf(ResultVo resultVo) {return of(resultVo, null);}public static ResponseBodyResult okOf(ResultVo resultVo, Object data) {return of(resultVo, data);}public static ResponseBodyResult errorOf(ResultVo resultVo) {return of(resultVo, null);}public int getCode() {return code;}public void setCode(int code) {this.code = code;}public String getMessage() {return message;}public void setMessage(String message) {this.message = message;}public Object getData() {return data;}public void setData(Object data) {this.data = data;}}
package entity.vo;
/*** @Description 枚举,返回状态和数据* @Author zhaohuaqing*/
public enum ResultVo {FOUND_ALL_USER(1,"查询所有用户成功"),FOUND_ALL_DEPART(1,"查询所有部门成功"),NULL_EXCEPTION(999,"空指针异常"),NO_FOUND_USER(998, "该用户不存在"),DELETE_USER_SUCCESS(1,"删除成功"),DELETE_USER_FAIL(997,"删除失败"),FOUND_USER_BY_DEPART(1,"根据部门查数据成功"),FOUND_ONE_USER(1, "该用户已存在"),UPDATE_USER_SUCCESS(1, "更新成功"),UPDATE_USER_FAIL(996, "更新失败"),LOGIN_OUT_SUCCESS(1,"注销成功"),FOUND_GENDER_SUCCESS(1,"查询性别信息成功"),SAVE_USER_SUCCESS(1,"保存成功"),SAVE_USER_FAIL(996,"保存失败"),THE_USER_ALREADY_EXISTS(995,"该用户已存在"),CLASS_CAST_EXCEPTION(994,"强制类型转换异常"),SQL_EXCEPTION(993,"操作数据库异常"),IO_EXCEPTION(992,"输入输出异常"),NO_SUCH_METHOD_EXCEPTION(991,"方法未找到异常"),EXCEPTION(990,"出现异常");private Integer code;private String msg;ResultVo(Integer code, String msg) {this.code = code;this.msg = msg;}public Integer getCode() {return code;}public String getMsg() {return msg;}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/355235.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

载波聚合或双连接的方式进行_处理载波聚合及双连接的装置及方法与流程

本发明涉及一种用于无线通信系统的通信装置及方法,尤其涉及一种处理载波聚合及双连接的装置及方法。背景技术:通过第三代合作伙伴计划(third generation partnership project,3GPP)发起的新无线(new radio,NR)系统包含有新无线接口…

拼接xml

拼接xml/*** description 拼接xml* param list 用户信息* return java.lang.String 拼接完成的xml* author zhaohuaqing* date 2021/6/21 15:39* version 1.0*/public static String getUserXMl(List<User> list,int totalNumber,int start){StringBuilder sb new Stri…

unity游戏开发毕设_一个程序小白的unity 2D游戏开发的反思与经验

学游戏设计的码农&#xff0c;中传大三在校生&#xff0c;代码水平目前还在进阶中。这个学期和美术一起进行了一次不成熟的磕磕绊绊的游戏开发。踩了很多坑&#xff0c;就当是毕设前的预热吧&#xff0c;做个总结&#xff0c;希望毕设不会再犯这些错误。因为整个本科阶段做的或…

Asp.Net MVC项目通过Git同步到新开发设备上后无法作为网站启动

右键项目名->属性->启动项目->单启动项目&#xff0c;在下拉框中选择你的网站主项目就可以了。&#xff08;由于用的英文版&#xff0c;所以翻译的内容可能略有差异&#xff09;转载于:https://www.cnblogs.com/chenyangsocool/p/7127469.html

前端参数编码

前端参数编码//对参数编码 function paramsCode(){var params ;$(.param).each(function () {var name $(this).attr("name");if ($(this).attr("type") "radio"){params (&name encodeStr($("input[name"name"]:checke…

如何以访客模式访问_重新访问了访客模式

如何以访客模式访问访客模式是面向对象设计中最被高估但又被低估的模式之一。 高估了它&#xff0c;因为它通常选择得太快了&#xff08; 可能是由建筑宇航员选择的 &#xff09;&#xff0c;然后以错误的方式添加后&#xff0c;使原本非常简单的设计肿了。 如果您不遵循教科书…

abap 创建出口历程_SAP abap 需找出口(BADI)的几种方法

现在给出一些比较简单的方法首先&#xff0c;大家要知道&#xff0c;一个程序的出口不会太多&#xff0c;需找出口&#xff0c;很多的时候都是在尝试第二&#xff0c;方法&#xff1a;首先会给出事务码&#xff0c;然后通过SE93找出对应的程序Y第三&#xff0c;se16里面&#x…

Objective-C基础语法高速入门

Objective-C是Mac软件开发领域最基本的开发语言&#xff0c;假如我们对C语言已经非常熟悉或者具有面向对象语言的基础。对于我们学习Objective-C将会非常实用。 方法调用(Calling Methods) 为了可以尽快上手。我们先来看一些简单的样例。Objective-C语法里面主要的方法调用是这…

华为堡垒机_运维堡垒机----Gateone

简介&#xff1a;运维堡垒机的理念起源于跳板机。2000年左右&#xff0c;高端行业用户为了对运维人员的远程登录进行集中管理&#xff0c;会在机房里部署跳板机。跳板机就是一台服务器&#xff0c;维护人员在维护过程中&#xff0c;首先要统一登录到这台服务器上&#xff0c;然…

拼图推迟将Java 9的发布日期推迟到2017年

由于Jigsaw项目的延迟&#xff0c;Java 9的发布日期被推迟到2017年 由于项目延迟的悠久历史&#xff0c;这可能不足为奇&#xff0c;但是看起来备受期待的拼图项目已被延迟。 再次。 好消息是&#xff0c;与上一次使用Java 8不同&#xff0c;它仍在Java 9的开发路线上。坏消息…

前端获取当前url路径

前端获取当前url路径//获取url路径 function getUrlPath(){//获取当前网址var currentPath window.document.location.href;//获取主机地址之后的目录var pathName window.document.location.pathname;var pos currentPath.indexOf(pathName);//获取主机地址var localhostPa…

jquery改变字符串中部分字符的颜色

//该方法改变字符串中中括号内&#xff08;包括中括号&#xff09;的字符串颜色为红色function changecolocer() {  var zf $(#YWFA).text();   if(zf.length>0){     $(#YWFA).html(zf.replace(/\【.*?\】/g,<label style"color:red;">$&<…

java自动推断类型_Java 7的类型推断

java自动推断类型每个优秀的程序员都喜欢编写简洁但有效且经过优化的代码。 类型推断是JDK 7中引入的一种方法&#xff0c;它肯定会为您带来更少键入的好处。 您以以下方式使用Java代码已有很长时间了。 但是&#xff0c;在初始化Collections的特定实现时&#xff0c;您是否曾经…

shell 删除七日内日志_shell日志删除(超容量自动)

背景&#xff1a;避免双十一磁盘被打爆&#xff0c;本想通过crontab执行&#xff0c;但是删除需要密码&#xff0c;所以用作当机器磁盘高于摸个阈值&#xff0c;进行无关性日志强删#!/bin/sh#use#sh clean.sh wmporder_prehost 38(说明&#xff1a;磁盘超过38%&#xff0c;则进…

form表单序列化转换为json对象

form表单序列化转换为json对象//form表单序列化转换为json对象 (function($){$.fn.serializeJsonfunction(){var serializeObj{};var arraythis.serializeArray();$(array).each(function(){if(serializeObj[this.name]){if($.isArray(serializeObj[this.name])){serializeObj[…

拓扑排序 确定比赛名次

确定比赛名次Problem Description有N个比赛队&#xff08;1<N<500&#xff09;&#xff0c;编号依次为1&#xff0c;2&#xff0c;3&#xff0c;。。。。&#xff0c;N进行比赛&#xff0c;比赛结束后&#xff0c;裁判委员会要将所有参赛队伍从前往后依次排名&#xff0c…

JavaFX技巧22:“自动调整大小(树)”表列

JavaFX “缺少功能调查”中提到的“缺少功能”的第一件事就是能够自动调整表/树表中的列大小。 没错&#xff0c;没有公共API是正确的&#xff0c;但是当您密切关注时&#xff0c;您会注意到JavaFX内部一定有执行此操作的代码&#xff0c;因为用户可以通过双击分隔线自动调整列…

aesmiyao php_PHP使用AES,ECB模式块和PKCS5Padding生成对称密钥

首先,要对你需要即兴创作的输入做PKCS#5填充&#xff1a;// source: http://php.net/manual/en/ref.mcrypt.php#69782function pkcs5_pad($text, $blocksize){$pad $blocksize - (strlen($text) % $blocksize);return $text . str_repeat(chr($pad), $pad);}然后选择你的算法并…

解决复合主键

解决复合主键使用IdClass(BzdmKey.class)注解 package entity.po;import javax.persistence.*;/*** Package main.java.pojo* Description BZDM对象的pojo类* Author zhaohuaqing*/ Entity Table(name "ts_bzdm") IdClass(BzdmKey.class) public class Bzdm {/*** …

【数据挖掘导论】——数据质量

数据质量数据挖掘使用的数据一般是为其它用途收集或者收集的时候还没有明白目的。因此数据经常不能在数据的源头控制质量。为了避免数据质量的问题&#xff0c;所以数据挖掘着眼于两个方面&#xff1a;数据质量问题的检測和纠正&#xff08;数据清理&#xff09;&#xff1b;使…