当前位置:网站首页>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
边栏推荐
- Guide de signature du Code Appx
- Wallys/IPQ6010 (IPQ6018 FAMILY) EMBEDDED BOARD WITH ON-BOARD WIFI DUAL BAND DUAL CONCURRENT
- C logging method
- [ORM framework]
- Several schemes of building hardware communication technology of Internet of things
- When there are pointer variable members in the custom type, the return value and parameters of the assignment operator overload must be reference types
- 【acwing】789. 数的范围(二分基础)
- 大整数类实现阶乘
- 【acwing】786. 第k个数
- Sword finger offer 38 Arrangement of strings [no description written]
猜你喜欢
【二开】【JeecgBoot】修改分页参数
Postman interface test VI
Inno setup packaging and signing Guide
High number_ Chapter 1 space analytic geometry and vector algebra_ Quantity product of vectors
Leetcode exercise - 113 Path sum II
字符串格式化
Programming features of ISP, IAP, ICP, JTAG and SWD
The method of word automatically generating directory
Appx代码签名指南
ArcGIS operation: batch modify attribute table
随机推荐
ORM -- logical relation and & or; Sort operation, update record operation, delete record operation
Learning records - high precision addition and multiplication
Embedded background - chip
Finally, there is no need to change a line of code! Shardingsphere native driver comes out
【剑指Offer】42. 栈的压入、弹出序列
[sword finger offer] 42 Stack push in and pop-up sequence
JMeter installation
AHB bus in stm32_ Apb2 bus_ Apb1 bus what are these
ArcGIS operation: batch modify attribute table
Google Colab装载Google Drive(Google Colab中使用Google Drive)
Use of JSON extractor originals in JMeter
SQLyog数据库怎么取消自动保存更改
Several schemes of building hardware communication technology of Internet of things
Postman interface test V
ORM -- grouping query, aggregation query, query set queryset object properties
STM32基础知识—内存映射
ES6中的函數進階學習
The variables or functions declared in the header file cannot be recognized after importing other people's projects and adding the header file
一文讲解单片机、ARM、MUC、DSP、FPGA、嵌入式错综复杂的关系
fiddler-AutoResponder