当前位置:网站首页>Talking about the return format in the log, encapsulation format handling, exception handling
Talking about the return format in the log, encapsulation format handling, exception handling
2022-07-07 10:23:00 【thoughtCodes】
Don't talk about model selection , The main consideration is info Level of data :
General information :
As a general rule , We all encapsulate a return exception class on the project , Used to pack information .
Generally speaking, it is return code and return information , This is the most common .
In order to better check the problem , We designed it as follows :
000000- Business success
000001- Business failure, etc
about Msg Information? :
We can define the information format : Or information tips .
In this way, the corresponding packaging information can be output in different process information .
The information should have rules , Such as XX, reason , Easy to go online grep Search for
Generally, this is ok .
exception handling :
We know the level of exceptions :
We can define our own exception class , It's not commonly used , But you can do this .
It's more about exceptions provided by the framework :
Spring MVC There are the following 3 A way to handle exceptions :
Use Spring MVC The simple exception handler provided SimpleMappingExceptionResolver.
Realization Spring Exception handling interface HandlerExceptionResolver, Customize your own exception handler .
Use @ExceptionHandler Annotation implements exception handling
Inherit exceptions directly from the framework and handle . that will do .
Processing mode :
Direct selling , Leave it to the system .
Catch exceptions by yourself and handle .
Exception handling Basics
1.1 System.out.println It's expensive . call System.out.println Will reduce system throughput .1.2 Don't use abnormal printStackTrace() Method .printStackTrace By default, the call stack will be printed on the console , Accessing the console in a production environment is unrealistic .
Basic principles of exception handling
2.1 If you can't handle exceptions , Do not catch this exception .2.2 If you want to capture , It should be caught near the source of the divorce .
2.3 Don't swallow the anomalies you catch .
*( Is the exception caught , But do nothing )2.4 Unless you want to throw an exception again , Otherwise, take it. log get up .
2.5 When an exception is repackaged , And then throw it again , Do not print statck trace.
2.6 Use custom exception classes , Don't throw an exception every time you need to throw it java.lang.Exception. Method callers can use throws Know what exceptions need to be handled – So it is self describing .
2.7 If you write business logic , For errors that end users cannot fix , The system should throw non checked exceptions (unchecked exception); If you write a third-party package for other developers , For irreparable errors, use exceptions that need to be checked (checked exception).
2.8 Never write because throws Sentences will make you uncomfortable to use , Without declaring the exceptions that need to be checked .
2.9 Application level errors or irreparable system exceptions use non checked exceptions (unchecked exception) Throw out .
*( Attention is wrong , Means irreparable , For example, the configuration file is wrong )2.10 Organize your methods according to the granularity of exceptions
In short :log Printing exception ,, Custom exception , Pay attention to the detected abnormality .
Generally, you can print , The system has defaulted to exception .
Recommended reading :
https://www.cnblogs.com/langtianya/p/6931190.html
边栏推荐
- Postman interface test VII
- Video based full link Intelligent Cloud? This article explains in detail what Alibaba cloud video cloud "intelligent media production" is
- 2022.7.5DAY597
- Vs code specifies the extension installation location
- 0x0fa23729 (vcruntime140d.dll) (in classes and objects - encapsulation.Exe) exception thrown (resolved)
- HAL库配置通用定时器TIM触发ADC采样,然后DMA搬运到内存空间。
- 每周推荐短视频:L2级有哪些我们日常中经常会用到的功能?
- Remote meter reading, switching on and off operation command
- STM32产品介绍
- A small problem of bit field and symbol expansion
猜你喜欢
VS Code指定扩展安装位置
ArcGIS operation: batch modify attribute table
【acwing】789. Range of numbers (binary basis)
0x0fa23729 (vcruntime140d.dll) (in classes and objects - encapsulation.Exe) exception thrown (resolved)
[higherhrnet] higherhrnet detailed heat map regression code of higherhrnet
Programming features of ISP, IAP, ICP, JTAG and SWD
STM32 ADC和DMA
Appx代码签名指南
The story of Plato and his three disciples: how to find happiness? How to find the ideal partner?
Some properties of leetcode139 Yang Hui triangle
随机推荐
Some properties of leetcode139 Yang Hui triangle
IPv4 socket address structure
Embedded background - chip
Methods of adding centerlines and centerlines in SolidWorks drawings
Apprentissage avancé des fonctions en es6
Advanced function learning in ES6
Postman interface test VI
Appx代码签名指南
CONDA creates virtual environment offline
@Transcation的配置,使用,原理注意事项:
mysql插入数据创建触发器填充uuid字段值
Study summary of postgraduate entrance examination in November
Inno Setup 打包及签名指南
移动端通过设置rem使页面内容及字体大小自动调整
反卷积通俗详细解析与nn.ConvTranspose2d重要参数解释
对存储过程进行加密和解密(SQL 2008/SQL 2012)
LLVM之父Chris Lattner:為什麼我們要重建AI基礎設施軟件
串口通讯继电器-modbus通信上位机调试软件工具项目开发案例
Factorial implementation of large integer classes
ORM -- query type, association query