当前位置:网站首页>浅谈日志中的返回格式封装格式处理,异常处理
浅谈日志中的返回格式封装格式处理,异常处理
2022-07-07 08:12:00 【thoughtCodes】
选型问题不谈,主要考虑info 级别的数据:
一般信息:
一般说来,我们都会上项目上封装一个返回异常类,用来包装信息。
通常我们来说就是返回码和返回信息,这种最常见了。
为了更好的检查问题,我们设计如下:
000000-业务成功
000001-业务失败等
对于Msg信息呢:
我们可以定义信息格式:或信息提示。
这样在就可以不同的流程信息中输出对应的封装信息了。
信息最好有规则话,如XX,原因,便于上线grep 搜索
一般这个就可以了。
异常处理:
我们知道异常的层次:
我们可以定义自己的异常类,一般不太常用,但是可以这么做。
更多的是借助框架提供的异常:
Spring MVC 有以下 3 种处理异常的方式:
使用 Spring MVC 提供的简单异常处理器 SimpleMappingExceptionResolver。
实现 Spring 的异常处理接口 HandlerExceptionResolver,自定义自己的异常处理器。
使用 @ExceptionHandler 注解实现异常处理
直接从框架上继承异常并处理。即可。
处理方式:
直接抛出,交由系统处理。
自己捕捉异常并处理。
异常处理基础
1.1 System.out.println是高代价的。调用System.out.println会降低系统吞吐量。1.2 在生产环境中别用异常的printStackTrace()方法。printStackTrace默认会把调用的堆栈打印到控制台上,在生产环境中访问控制台是不现实的。
异常处理基本原则
2.1 如果你不能处理异常,不要捕获该异常。2.2 如果要捕获,应在离异常源近的地方捕获它。
2.3 不要吞没你捕获的异常。
*(就是捕获的异常,但是什么也不做)2.4 除非你要重新抛出异常,否则把它log起来。
2.5 当一个异常被重新包装,然后重新抛出的时候,不要打印statck trace。
2.6 用自定义的异常类,不要每次需要抛出异常的时候都抛出java.lang.Exception。方法的调用者可以通过throws知道有哪些异常需要处理–所以它是自我描述的。
2.7 如果你编写业务逻辑,对于终端用户无法修复的错误,系统应该抛出非检查的异常(unchecked exception);如果你编写一个第三方的包给其他的开发人员用,对于不可修复的错误要用需要检查的异常(checked exception)。
2.8 绝对不要因为写throws语句会让你用起来不舒服,而不声明需要检查的异常。
2.9 应用级别的错误或不可修复的系统异常用非检查的异常(unchecked exception)抛出。
*(注意是错误,意味着不可修复,比如配置文件错误)2.10 根据异常的粒度组织你的方法
简而言之:log 打印异常,,自定义异常,注意受检异常。
一般打印即可,系统已经默认了异常。
推荐阅读:
https://www.cnblogs.com/langtianya/p/6931190.html
边栏推荐
- ES6中的函數進階學習
- Postman interface test VI
- 官媒关注!国内数字藏品平台百强榜发布,行业加速合规健康发展
- Weekly recommended short videos: what are the functions of L2 that we often use in daily life?
- 一文讲解单片机、ARM、MUC、DSP、FPGA、嵌入式错综复杂的关系
- Use of JSON extractor originals in JMeter
- ORM -- logical relation and & or; Sort operation, update record operation, delete record operation
- The Himalaya web version will pop up after each pause. It is recommended to download the client solution
- AHB bus in stm32_ Apb2 bus_ Apb1 bus what are these
- Horizontal split of database
猜你喜欢

A wave of open source notebooks is coming

request对象对请求体,请求头参数的解析

能源路由器入门必读:面向能源互联网的架构和功能

Wallys/IPQ6010 (IPQ6018 FAMILY) EMBEDDED BOARD WITH ON-BOARD WIFI DUAL BAND DUAL CONCURRENT

STM32中AHB总线_APB2总线_APB1总线这些是什么

Programming features of ISP, IAP, ICP, JTAG and SWD

嵌入式背景知识-芯片

Google colab loads Google drive (Google drive is used in Google colab)

STM32基础知识—内存映射

ISP、IAP、ICP、JTAG、SWD的编程特点
随机推荐
Memory ==c language 1
Postman tutorial - scripting
The method of word automatically generating directory
Easyexcel read write simple to use
Postman interface test II
【acwing】786. Number k
Postman interface test III
AHB bus in stm32_ Apb2 bus_ Apb1 bus what are these
ORM模型--关联字段,抽象模型类
【华为机试真题详解】高矮个子排队
ES6中的函數進階學習
【学习笔记-李宏毅】GAN(生成对抗网络)全系列(一)
ORM -- database addition, deletion, modification and query operation logic
Chris Lattner, père de llvm: Pourquoi reconstruire le logiciel d'infrastructure ai
[learning notes - Li Hongyi] Gan (generation of confrontation network) full series (I)
The landing practice of ByteDance kitex in SEMA e-commerce scene
IO模型复习
Embedded background - chip
Why does the starting service report an error when installing MySQL? (operating system Windows)
Inno setup packaging and signing Guide