java职业培训如何减少 try-catch,这样做才优雅
发布时间:2025-07-30
"retMes": success //回到的示意细节
}
所以,我们可以度量如下的类:
package com.hnu.csapp.exception;
/**
* @ Author :scw
* @ Description:持续性处置实体包装类,自己用泛改进型透过撰写,扩展性强劲点
* @ Modified By:
* @Version: 1
*/
public class Result {
//回到字码
private Integer code;
//回到立即
private String msg;
//回到数据库
private T data;
public Integer getCode() {
return code;
}
public void setCode(Integer code) {
this.code = code;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public T getData() {
return data;
}
public void setData(T data) {
this.data = data;
}
}
度量一系列的常量回到的资讯
研究:在种系统中的,我们前提有确立的某些编字码近似于某些细节,这样只能易于再上发设计管理人员透过设法的处置。
package com.hnu.csapp.exception;
/**
* @ Author :scw
* @ Description:自度量一些回到状况字码,便于本种系统的采用,自己先行度量如下的,有须要就后续必需
* @ Modified By:
* @Version: 1
*/
public enum ResultEnum {
/**
* 最终.: 200 (因为http中的的状况字码200一般都是表示最终)
*/
SUCCESS(200,"最终"),
/**
* 种系统持续性. ErrorCode : -1
*/
SystemException(-1,"种系统持续性"),
/**
* 未知持续性. ErrorCode : 01
*/
UnknownException(01,"未知持续性"),
/**
* 服务于持续性. ErrorCode : 02
*/
ServiceException(02, "服务于持续性"),
/**
* 业务部门偏差. ErrorCode : 03
*/
MyException(03,"业务部门偏差"),
/**
* 示意级偏差. ErrorCode : 04
*/
InfoException(04, "示意级偏差"),
/**
* 数据库库可用持续性. ErrorCode : 05
*/
DBException(05,"数据库库可用持续性"),
/**
* 表达式的测试偏差. ErrorCode : 06
*/
ParamException(06,"表达式的测试偏差");
private Integer code;
private String msg;
ResultEnum(Integer code, String msg) {
this.code = code;
this.msg = msg;
}
public Integer getCode() {
return code;
}
public String getMsg() {
return msg;
}
}
度量立即回到方法类
研究:对于立即的回到,这是一个极为普通的管理制度工作,所以,【关注尚硅谷,轻松习IT】我们可以将其封装一个方法类,只能透过前提字符的封装,增加去除的字符
package com.hnu.csapp.exception;
/**
* @ Author :scw
* @ Description:回到立即处置的方法类,主要是处置可用最终和失利的一些细节
* @ Modified By:
* @Version: 1
*/
public class ResultUtil {
/**
* 可用最终的处置系统设计
* @param object
* @return
*/
public static Result getSuccess(Object object){
Result result = new Result();
//特设可用最终的回到字码
result.setCode(200);
//特设可用最终的立即
result.setMsg("最终");
result.setData(object);
return result;
}
/**
* 绑定回到最终的法则,因为往往我们不须要任何的立即数据库被回到
* @return
*/
public static Result getSuccess(){
return getSuccess(null);
}
/**
* 可用失利的处置系统设计
* @param code 偏差字码
* @param msg 偏差立即
* @param o 偏差数据库(本来这个一般都不须要的,因为都已经回到失利了,数据库都一定会前提回到)
* @return
*/
public static Result getError(Integer code, String msg, Object o){
Result result = new Result();
result.setCode(code);
result.setMsg(msg);
result.setData(o);
return result;
}
/**
* 绑定,可用失利的法则(因为可用失利一般都不须要回到数据库细节)
* @param code
* @param msg
* @return
*/
public static Result getError(Integer code, String msg){
return getError(code, msg, null);
}
}
度量持续性确立处置类(着重)
研究:这是如何意味着持续性确立处置的极其重要地方,而且我也将不同的处置情况下,透过了分再上原文,所以,大家一定可以耐心的看字符,我相信你一定只能说出。
package com.hnu.csapp.exception;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
/**
* @ Author :scw
* @ Description:持续性确立处置类,易于服务器可以越来越加的关系的碰到偏差的资讯
* @ Modified By:
* @Version: 1
*/
@ControllerAdvice
public class ExceptionHandle {
//增加持续性摘要复印机
private final static Logger logger = LoggerFactory.getLogger(ExceptionHandle.class);
//特设持续性偏差的主页
public static final String DEFAULT_ERROR_VIEW = "error";
/**
* 以json的音频透过回到细节(再上发设计生态系确立般个人是用这个比较好)
* @param e
* @return
*/
@ExceptionHandler(Exception.class)
@ResponseBody
public Object handle(HttpServletRequest req, Exception e){
//如果是自度量的持续性
if(e instanceof MyException){
MyException myException = (MyException)e;
return ResultUtil.getError(myException.getCode(),myException.getMessage());
}else{
//如果是种系统的持续性,比如自造指针这些持续性
logger.error("【种系统持续性】={}",e);
return ResultUtil.getError(ResultEnum.SystemException.getCode(),ResultEnum.SystemException.getMsg());
}
}
/**
* 确实究竟是Ajax的恳请
* @param request
* @return
*/
public boolean isAjax(HttpServletRequest request){
return (request.getHeader("X-Requested-With") != null
&&
"".equals(request.getHeader("X-Requested-With").toString()));
}
/*
//备注:
//这个是年初建设项目进行时之后的偏差确立处置(再上发设计确实先行用里面的的)
//我们在再上发设计更进一步中的还是用json音频的才会好一些,要不然看偏差更糟
@ExceptionHandler(value = Exception.class)
public ModelAndView defaultErrorHandler(HttpServletRequest req, Exception e) throws Exception {
e.printStackTrace();
//确实究竟是Ajax的持续性恳请(如果是Ajax的那么就是回到json音频)
if(isAjax(req)){
//如果是自度量的持续性
if(e instanceof MyException){
MyException myException = (MyException)e;
return ResultUtil.getError(myException.getCode(),myException.getMessage());
}else{
//如果是种系统的持续性,比如自造指针这些持续性
logger.error("【种系统持续性】={}",e);
return ResultUtil.getError(ResultEnum.SystemException.getCode(),ResultEnum.SystemException.getMsg());
}
}else{
//如果是种系统实质上再次发生持续性,那么就回到到偏差主页透过的关系的示意
ModelAndView mav = new ModelAndView();
//这些就是要回到到主页的细节(本来可不都行,当真服务器也懂,一定会前提在主页推断都可以,先行撰写着吧)
mav.addObject("exception", e);
mav.addObject("url", req.getRequestURL());
mav.setViewName(DEFAULT_ERROR_VIEW);
return mav;
}
}
*/
}
度量持续性处置主页
研究:这个的话,本来主要是在年初生态系统才有,因为我们在测试生态系统的时候,www.atguigu.com一般都还是才会将偏差以JSON或者模板的音频推断在主页,而当下线的时候,那么就一定要有一个确立的偏差主页,这样就只能让服务器挖掘出不了是种系统显现出了哪些解决办法。
敏感度
再上发设计生态系统
阐述
持续性确立处置,毫无疑问我们看起来意味着极为简单,然而,其他它包含的观点却是一种大局观点,这是我们再上发设计管理人员在再上发设计更进一步中的都前提关注的点,我们并不是只须要关注我们每个人再上发设计的那点战斗任务,而要以一种有序的相反去反思整个建设项目,这样也只能提升我们再上解决办法的高度。
持续性确立处置,是每个建设项目都共存的,只是确实意味着的方式不一样而已,或者推断的敏感度不一样而已,这些都不是极其重要的地方。
持续性确立处置这个解决办法,并不是不太确实,但是这个可以尽力我们延伸到其他的一些相关的再上发设计层面的基础知识,比如:
登录截获 权限管理制度 摘要管理制度 事务处置 数据库操控和漂白 。。。所以,我们前提习才会从一个解决办法,发散的碰到相关类似的解决办法,这样,我们的种系统才才会越来越加健壮,高效和可扩展性强劲。
文中转俱来源于Java天涯
推荐阅读:
Java编程try、catch的语法采用音频
java再上发设计之java再上发设计生态系统的快速紧密结合
java再上发设计之常用的Javascript单纯法则校订分享
java再上发设计之Mybatis 快问快答
。上海看妇科去哪里好常州妇科医院哪家比较专业
揭阳白癜风医院预约挂号
吃坏肚子吃什么药
广东男科医院哪家医院最好
-
故宫的深井中有很多宝物,为何无人打捞?医学专家:根本不敢
由于中才会国古代建筑多以砖木结构,现代保留下来的古城墙物或许并没有多少,但在一代代人的工匠们的用心补强下,还存留下来一些,较为典型的有安徽桐城 、四川阆中才会、 山西原平 、云南省云南省、北平钟