当前位置:网站首页>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
边栏推荐
- ArcGIS operation: converting DWG data to SHP data
- The story of Plato and his three disciples: how to find happiness? How to find the ideal partner?
- A wave of open source notebooks is coming
- STM32 ADC and DMA
- ORM -- grouping query, aggregation query, query set queryset object properties
- STM32 Basics - memory mapping
- mysql插入数据创建触发器填充uuid字段值
- Parameter sniffing (2/2)
- 嵌入式工程师如何提高工作效率
- [email protected]能帮助我们快速拿到日志对象
猜你喜欢
Weekly recommended short videos: what are the functions of L2 that we often use in daily life?
Several schemes of building hardware communication technology of Internet of things
Postman interface test III
【二开】【JeecgBoot】修改分页参数
Google colab loads Google drive (Google drive is used in Google colab)
High number_ Chapter 1 space analytic geometry and vector algebra_ Quantity product of vectors
PDF文档签名指南
【acwing】789. 数的范围(二分基础)
The Hal library is configured with a general timer Tim to trigger ADC sampling, and then DMA is moved to the memory space.
每周推荐短视频:L2级有哪些我们日常中经常会用到的功能?
随机推荐
嵌入式工程师如何提高工作效率
fiddler-AutoResponder
ORM model -- creation and query of data records
Guide de signature du Code Appx
ArcGIS operation: batch modify attribute table
Prototype object in ES6
Win10 installation vs2015
Introduction to uboot
2022.7.6DAY598
SQLyog数据库怎么取消自动保存更改
柏拉图和他的三个弟子的故事:如何寻找幸福?如何寻找理想伴侣?
STM32中AHB总线_APB2总线_APB1总线这些是什么
关于hzero-resource报错(groovy.lang.MissingPropertyException: No such property: weight for class)
Why is the reflection efficiency low?
EasyExcel读取写入简单使用
A small problem of bit field and symbol expansion
Download Text, pictures and ab packages used by unitywebrequest Foundation
Deconvolution popular detailed analysis and nn Convtranspose2d important parameter interpretation
Advanced function learning in ES6
Inno Setup 打包及签名指南