当前位置:网站首页>浅谈日志中的返回格式封装格式处理,异常处理
浅谈日志中的返回格式封装格式处理,异常处理
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
边栏推荐
- Bit operation ==c language 2
- China's first electronic audio category "Yamano electronic audio" digital collection is on sale!
- ES类和对象、原型
- ORM model -- associated fields, abstract model classes
- XML配置文件解析与建模
- HAL库配置通用定时器TIM触发ADC采样,然后DMA搬运到内存空间。
- 中国首款电音音频类“山野电音”数藏发售来了!
- LLVM之父Chris Lattner:為什麼我們要重建AI基礎設施軟件
- ES6中的函數進階學習
- “十二星座女神降临”全新活动推出
猜你喜欢

Postman interface test II

Fiddler break point

Web3.0 series distributed storage IPFs

Remote meter reading, switching on and off operation command

STM32基础知识—内存映射

Introduction to energy Router: Architecture and functions for energy Internet

ISP、IAP、ICP、JTAG、SWD的编程特点

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

STM32 Basics - memory mapping

Appx代码签名指南
随机推荐
ORM -- grouping query, aggregation query, query set queryset object properties
The method of word automatically generating directory
搭建物联网硬件通信技术几种方案
Appx代碼簽名指南
【剑指Offer】42. 栈的压入、弹出序列
EasyExcel读取写入简单使用
Several schemes of building hardware communication technology of Internet of things
2022.7.6DAY598
STM32基础知识—内存映射
Inno setup packaging and signing Guide
Guide de signature du Code Appx
Guid primary key
Remote meter reading, switching on and off operation command
2022.7.5DAY597
Use of JSON extractor originals in JMeter
Why is the reflection efficiency low?
Introduction to energy Router: Architecture and functions for energy Internet
Advanced function learning in ES6
The request object parses the request body and request header parameters
Official media attention! The list of top 100 domestic digital collection platforms was released, and the industry accelerated the healthy development of compliance