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

免费私人网站建设平台公司网站怎么做产品图片

免费私人网站建设平台,公司网站怎么做产品图片,五网合一网站建设,网站公司一站式服务应用中的异常#xff0c;有两件事要考虑#xff0c;怎么处理这个异常#xff0c;怎么把异常可读性高地返回给前端用户 1.怎么把异常可读性高的返回给前端用户或API的消费者 自定义错误代码和错误内容 2.怎么处理异常 比如遇到某个异常时需要发邮件通知IT团队 Controlle…应用中的异常有两件事要考虑怎么处理这个异常怎么把异常可读性高地返回给前端用户 1.怎么把异常可读性高的返回给前端用户或API的消费者 自定义错误代码和错误内容 2.怎么处理异常 比如遇到某个异常时需要发邮件通知IT团队 ControllerAdvice 是 Spring Framework 提供的一个注解用于定义全局的异常处理、数据绑定和模型属性的增强。 它的主要作用是集中管理控制器的全局逻辑例如异常处理而不需要在每个控制器中重复编写相同的代码。   主要功能 全局异常处理通过 ExceptionHandler 注解 捕获并处理控制器中抛出的异常。 全局数据绑定通过 InitBinder 注解对请求参数进行预处理。 全局模型属性通过 ModelAttribute 注解为所有控制器提供公共的模型数据 3.自定义错误代码和内容并且使用ControllerAdvice统一处理异常 3.1 自定义错误码可以把Demo换成projectname public enum ExceptionCode {IN_VALID_REQUEST(Demo0001, ),BAD_REQUEST(Demo400, Bad Request),NOT_FOUND(Demo404, Resource Not Found),INTERNAL_SERVER_ERROR(Demo500, Internal Server Error);private final String code;private final String message;ExceptionCode(String code, String message) {this.code code;this.message message;}public String getCode() {return code;}public String getMessage() {return message;} } 3.2 自定义异常InvalidationException public class InvalidationRequestException extends RuntimeException {public InvalidationRequestException(String message) {super(message);}public InvalidationRequestException(String message, Throwable cause) {super(message, cause);} } 3.3 自定义ExceptionAdvice统一处理exception 当controller中抛出InvalidationRequestException时就会被ControllerAdvice 中的 ExceptionHandler handleInvalidationException()方法捕获并处理该异常 import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.ResponseBody;import java.util.HashMap; import java.util.Map;ControllerAdvice public class GlobalExceptionHandler {private static final Logger logger LoggerFactory.getLogger(GlobalExceptionHandler.class);ExceptionHandler(InvalidationRequestException.class)ResponseBodypublic ResponseEntityMapString, String handleInvalidationException(InvalidationRequestException ex) {logger.warn(InvalidationRequestException: {}, ex.getMessage());//其它异常处理逻辑比如发邮件打电话通知IT团队//返回给UI或API消费者MapString, String response new HashMap();response.put(code, ExceptionCode.IN_VALIDATED_REQUEST.getCode());response.put(detail,ex.getMessage());return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(response);}ExceptionHandler(Exception.class)public ResponseEntityString handleGenericException(Exception ex) {return new ResponseEntity(An error occurred: ex.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR);} } 3.4 controller 抛出InvalidationException异常 import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController;RestController public class DemoController {GetMapping(/validate)public String validateParameter(RequestParam String input) {if (input null || input.trim().isEmpty()) {throw new InvalidationRequestException(Input parameter is invalid or empty);}return Input is valid: input;} } 3.5 测试 启动应用访问 http://localhost:8082/validate?input 校验失败时返回http状态码是400body如下 {code: Demo0001,detail: Input parameter is invalid or empty} 1.异常直接抛出 import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController;RestController public class DemoController {GetMapping(/throwException)public String throwException() {throw new RuntimeException(This is a runtime exception!);} } 启动应用访问 http://localhost:8082/throwException 会获得一个状态码为500的异常 An error occurred: This is a runtime exception! 思考这个异常对用户或者call API的消费者来说可读性太低不能明确的知道是什么错误 2.自定义状态码和错误信息返回给前端用户或者API 消费者可读性高的异常 自定义错误码可以把Demo换成projectname public enum ExceptionCode {IN_VALIDATED_REQUEST(Demo0001, ),BAD_REQUEST(Demo400, Bad Request),NOT_FOUND(Demo404, Resource Not Found),INTERNAL_SERVER_ERROR(Demo500, Internal Server Error);private final String code;private final String message;ExceptionCode(String code, String message) {this.code code;this.message message;}public String getCode() {return code;}public String getMessage() {return message;} } controller抛出异常 import com.example.demo_async.exception.ExceptionCode; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController;import java.util.HashMap; import java.util.Map;RestController public class DemoController {GetMapping(/testErrorCode)public ResponseEntityMapString, String testErrorCode() {MapString, String response new HashMap();response.put(code, ExceptionCode.BAD_REQUEST.getCode());response.put(detail, ExceptionCode.BAD_REQUEST.getMessage());return new ResponseEntity(response, HttpStatus.BAD_REQUEST);} } 返回http status  400 body 如下 {code: Demo400,detail: Bad Request} 思考如果有很多个controller方法都会抛出这个异常就需要在每个方法里写一遍异常处理的逻辑会产生大量的重复代码怎么解决呢
http://www.hkea.cn/news/14478345/

相关文章:

  • 网站h1标签的应用旅游网站建设网站
  • 网站根目录验证文件是什么网站右侧浮动广告代码
  • 网站建站需要什么企业网站 留言板
  • 云南网站设计哪家专业杭州网站建设公司官网
  • 海尔网站建设的目标是什么建设银行积分兑换商城官方网站
  • 做彩票的网站吗微信自动加好友软件
  • 学院网站建设通知哈尔滨企业建网站推广
  • 以营销型网站为主要营销方式的案例淘宝做导航网站有哪些
  • 建设网站时怎么用外部字体河南省电力工程建设企业协会网站
  • 网站品牌推广公司jq效果较多的网站
  • 网站制作的评价指标中有经验的唐山网站建设
  • 辣条类网站建设规划书做网站最小的字体是多少像素
  • 动态电商网站怎么做wordpress 网站加速
  • 天津网站建设推广服务做网站会后期维护吗
  • 做直播网站有哪些中小企业网站制作平台
  • 如何建一个公司的网站京东网站 用什么做的
  • 那个网站能找到人班级网站做哪些方面
  • 番禺手机网站制作推广品牌建设存在问题
  • 摄影网站怎么备案淮北建设投资有限责任公司官网
  • 网站开发产品设计公司企业网站推广案例
  • 公司做竞拍网站的收入怎么报税网站建设备案和免备案的区别
  • 设计欣赏网站哪个网站做售楼推广好
  • 南通市住房和建设局网站免费推广网站大全
  • 海南做网站的技术公司网站建筑设计
  • 商洛城乡建设局网站广东做淘宝的都在哪里网站
  • 天津正规制作网站公司广州天河区建设网站
  • 网页设计素材网站网站权重提升
  • 视频当背景图片 网站开发高级软件开发培训
  • 哪里有网站建设加工vs 2008 建立网站
  • 大型网站只做要多少钱照片合成制作app