CN116566810A - 一种基于Spring MVC框架的系统异常处理方法、装置和设备 - Google Patents

一种基于Spring MVC框架的系统异常处理方法、装置和设备 Download PDF

Info

Publication number
CN116566810A
CN116566810A CN202310526991.6A CN202310526991A CN116566810A CN 116566810 A CN116566810 A CN 116566810A CN 202310526991 A CN202310526991 A CN 202310526991A CN 116566810 A CN116566810 A CN 116566810A
Authority
CN
China
Prior art keywords
abnormality
user
abnormal
client
exception
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202310526991.6A
Other languages
English (en)
Inventor
彭江平
朱泽洲
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Zhongtongji Network Technology Co Ltd
Original Assignee
Shanghai Zhongtongji Network Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Zhongtongji Network Technology Co Ltd filed Critical Shanghai Zhongtongji Network Technology Co Ltd
Priority to CN202310526991.6A priority Critical patent/CN116566810A/zh
Publication of CN116566810A publication Critical patent/CN116566810A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0686Additional information in the notification, e.g. enhancement of specific meta-data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种基于Spring MVC框架的系统异常处理方法、装置和设备,属于异常处理领域;首先对Controller进行监测,当Controller抛出异常时,对异常进行解析,以确定该异常的优先级,进而根据优先级判断是否需要钉钉通知,若需要,则获取异常消息模板并通过钉钉群助手向开发人员发送通知,同时向用户所在客户端发送提示信息。本申请技术方案,能够在系统异常时,自动获取异常并根据异常优先级判断是否需要直接通知开发人员,无需等待用户反馈,大大提高了异常处理速率,并且能够及时通知用户,提升用户体验。

Description

一种基于Spring MVC框架的系统异常处理方法、装置和设备
技术领域
本发明涉及异常处理领域,特别地,涉及一种基于Spring MVC框架的系统异常处理方法、装置和设备。
背景技术
目前大部分企业的异常处理方法都是在controller层直接返回状态码和异常信息,当用户反馈异常时再去系统日志中搜索定位问题。这在业务不复杂、数据量不大的系统中会比较有效。随着我们业务场景、数据量不断的增加,当我们再采用一般的异常处理方式,用户每一次反馈系统异常信息,开发人员每一次被动的去查询日志、定位异常问题;这时异常信息的处理将会变得愈发混乱,异常信息不能及时的通知到开发人员以及最终导致用户体验的下降。
发明内容
为了克服现有技术的不足,本发明提供一种基于Spring MVC框架的系统异常处理方法、装置和设备,以解决现有异常处理方式,异常信息不能及时的通知到开发人员以及最终导致用户体验的下降的问题。
本发明解决其技术问题所采用的技术方案是:
第一方面,提供一种基于Spring MVC框架的系统异常处理方法,包括以下步骤:
当监测Controller抛出异常时,解析所述异常以判断所述异常是否需要钉钉通知;
若需要,则获取异常消息模板并通过钉钉群助手向开发人员发送通知,同时向用户所在客户端发送异常提示信息。
进一步地,若不需要,则向用户所在客户端发送异常提示消息
进一步地,所述解析所述异常以判断所述异常是否需要钉钉通知,包括:
解析所述异常,获取所述异常类型;
根据所述异常类型判断所述异常是否需要钉钉通知。
进一步地,所述向用户所在客户端发送异常提示信息包括:
获取所述客户端请求头的语言标识;
将所示异常提示信息的语言转换为所述语言标识对应的语言;
将转换语言后的异常提示信息发送到用户所在客户端。
进一步地,所述获取异常消息模板,包括:
所述异常所示业务类型、报告所述异常的方法、所述方法的入参和具体的异常信息。
第二方面,提供一种基于Spring MVC框架的系统异常处理装置,包括:
异常处理模块,用于当监测Controller抛出异常时,解析所述异常以判断所述异常是否需要钉钉通知;
异常通知模块,用于若需要,则获取异常消息模板并通过钉钉群助手向开发人员发送通知,同时向用户所在客户端发送异常提示信息。
第三方面,提供一种基于Spring MVC框的系统异常处理设备,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
所述处理器被配置为用于执行第一方面提供的技术方案中任一项所述的方法。
有益效果:
本申请技术方案提供一种基于Spring MVC框架的系统异常处理方法、装置和设备,首先对Controller进行监测,当Controller抛出异常时,对异常进行解析,以确定该异常的优先级,进而根据优先级判断是否需要钉钉通知,若需要,则获取异常消息模板并通过钉钉群助手向开发人员发送通知,同时向用户所在客户端发送异常提示信息。本申请技术方案,能够在系统异常时,自动获取异常并根据异常优先级判断是否需要直接通知开发人员,无需等待用户反馈,大大提高了异常处理速率,并且能够及时通知用户,提高用户体验。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种基于Spring MVC框架的系统异常处理方法流程图;
图2是本发明实施例提供的一种基于Spring MVC框架的系统异常处理装置结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面结合附图和实施例对本发明的技术方案进行详细的描述说明。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施方式,都属于本申请所保护的范围。
第一实施例,参照图1,本发明实施例提供了一种基于Spring MVC框架的系统异常处理方法,包括以下步骤:
S11:当监测Controller抛出异常时,解析异常以判断异常是否需要钉钉通知;具体地,解析异常,获取异常类型;根据异常类型判断异常是否需要钉钉通知。其中,获取异常类型,包括异常所示业务类型、报告异常的方法、方法的入参和具体的异常信息。
S12:若需要,则获取异常消息模板并通过钉钉群助手向开发人员发送通知,同时向用户所在客户端发送异常提示信息。
S13:若不需要,则向用户所在客户端发送异常提示消息。
需要说明的是,向用户所在客户端发送异常提示信息包括:获取客户端请求头的语言标识;将所示异常提示信息的语言转换为语言标识对应的语言;将转换语言后的异常提示信息发送到用户所在客户端。
本发明实施例提供的基于Spring MVC框架的系统异常处理方法,首先对Controller进行监测,当Controller抛出异常时,对异常进行解析,以确定该异常的优先级,进而根据优先级判断是否需要钉钉通知,若需要,则获取异常消息模板并通过钉钉群助手向开发人员发送通知,同时向用户所在客户端发送异常提示信息。本申请技术方案,能够在系统异常时,自动获取异常并根据异常优先级判断是否需要直接通知开发人员,无需等待用户反馈,大大提高了异常处理速率,并且能够及时通知用户,提高用户体验。
第二实施例,作为对上述实施例的进一步说明,本发明提供一种具体的基于Spring MVC框架的系统异常处理方法,首先处理的整个流程如下所示:当系统发生异常时,直接将异常抛出,最终会被统一异常处理方法捕捉到,在该方法中可以针对不同的异常做定制化处理,比如说针对所有业务异常(BusinessException类型)的异常,我们首先根据客户端请求头中的语言标识来将错误信息国际化,然后判断当前的异常等级是否很高需要通过钉钉通知,如果优先级较高则将错误信息模板化,然后调用钉钉的api通过钉钉智能群助手发送到通知群中,通知相应的开发人员去进行排查优化,并且将错误提示信息返回给客户端,最终提示给用户。
该方案具体实现的原理如下:
1.基于spring MVC框架,使用@ControllerAdvice,对Controller进行切面环绕,具体的业务织入方式通过结合其它注解来实现,这里结合注解@ExceptionHandler来处理异常,将一个方法指定为异常处理方法。该注解只有一个属性,为一个Class数组,用于指定该注解的方法所要处理的异常类,即所要匹配的异常。具体原理是当Controller抛出异常时,DispatcherServlet通过ExceptionHandlerExceptionResolver来解析异常,而其又获取ExceptionHandlerMethodResolver来解析异常,ExceptionHandlerMethodResolver最终解析异常找到适用的@ExceptionHandler注解标注的方法来处理,所以我们只需要在@ExceptionHandler标注的方法下编写具体处理异常的逻辑即可。
2.多语言配置文件实现异常信息的国际化,包含了多种语言的配置文件。当出现异常时,会根据客户端传来的语言去解析,获取对应语言的文案,最终返回给用户提示信息,其原理使用的是spring框架中的MessageSource结合请求头Accept-Language初始化的Locale对象来实现。
3.定义丰富的可扩展的异常消息模板,能比较清晰的描述当前异常发生的位置、异常的类型、定义异常的优先级,也可以打印出异常所处方法的入参等信息,方便后续开发人员能快速的排查问题。这里我们设计的消息通知模板主要包含几块信息:第一该异常属于什么业务类型,第二是哪个方法报的异常,第三是如果该方法有入参需要打印入参,第四是具体的异常信息,不过为了防止异常的堆栈信息打印过长,这里我们默认设置为5层。
4.钉钉中的智能群助手可以发送消息到告警群中,并@相关开发人员。在项目中只需要配置智能群助手的api链接以及密钥,并结合上面第三点配置的消息模板,便可以很方便的使用这一功能。
本发明实施例提供的具体的基于Spring MVC框架的系统异常处理方法,基于Sping MVC技术以及钉钉的智能群助手衍生出的统一异常处理和通知的一种方案,定义了统一的异常返回结构体和通用的、可扩展的异常枚举类,另外也实现了异常信息的国际化,并且采用可配置的方式指定某些级别的异常出现时主动通过钉钉的智能群助手发送通知。可以通过异常统一处理的方式实现对异常信息进行更好的管理,提升用户体验、减少代码的冗余和节约开发资源。
第三实施例,本发明提供一种基于Spring MVC框架的系统异常处理装置,如图2所示,包括:
异常处理模块21,用于当监测Controller抛出异常时,解析异常以判断异常是否需要钉钉通知;具体地,解析异常,获取异常类型;根据异常类型判断异常是否需要钉钉通知。
异常通知模块22,用于若需要,则获取异常消息模板并通过钉钉群助手向开发人员发送通知,同时向用户所在客户端发送异常提示信息。若不需要,则向用户所在客户端发送异常提示消息。获取异常消息模板,包括:异常所示业务类型、报告异常的方法、方法的入参和具体的异常信息。
其中,向用户所在客户端发送异常提示信息包括:获取客户端请求头的语言标识;将所示异常提示信息的语言转换为语言标识对应的语言;将转换语言后的异常提示信息发送到用户所在客户端。
本发明实施例提供的基于Spring MVC框架的系统异常处理装置,当监测Controller抛出异常时,异常处理模块解析异常以判断异常是否需要钉钉通知;若需要,则异常通知模块获取异常消息模板并通过钉钉群助手向开发人员发送通知,同时向用户所在客户端发送异常提示信息。本发明实施例提供的基于Spring MVC框架的系统异常处理装置,能够首先对Controller进行监测,当Controller抛出异常时,对异常进行解析,以确定该异常的优先级,进而根据优先级判断是否需要钉钉通知,若需要,则获取异常消息模板并通过钉钉群助手向开发人员发送通知,同时向用户所在客户端发送异常提示信息。本申请技术方案,能够在系统异常时,自动获取异常并根据异常优先级判断是否需要直接通知开发人员,无需等待用户反馈,大大提高了异常处理速率,并且能够及时通知用户,提高用户体验。
第四实施例,本发明提供一种基于Spring MVC框架的系统异常处理设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
处理器被配置为用于执行第一实施例或第二实施例提供的基于Spring MVC框架的系统异常处理方法。
本发明实施例提供的基于Spring MVC框架的系统异常处理系统,通过存储器存储处理器的可执行指令,当该可执行指令被执行时,处理器能够首先对Controller进行监测,当Controller抛出异常时,对异常进行解析,以确定该异常的优先级,进而根据优先级判断是否需要钉钉通知,若需要,则获取异常消息模板并通过钉钉群助手向开发人员发送通知,同时向用户所在客户端发送异常提示信息。本申请技术方案,能够在系统异常时,自动获取异常并根据异常优先级判断是否需要直接通知开发人员,无需等待用户反馈,大大提高了异常处理速率,并且能够及时通知用户,提高用户体验。
可以理解的是,上述各实施例中相同或相似部分可以相互参考,在一些实施例中未详细说明的内容可以参见其他实施例中相同或相似的内容。
需要说明的是,在本申请的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本申请的描述中,除非另有说明,“多个”的含义是指至少两个。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。

Claims (7)

1.一种基于Spring MVC框架的系统异常处理方法,其特征在于,包括以下步骤:
当监测Controller抛出异常时,解析所述异常以判断所述异常是否需要钉钉通知;
若需要,则获取异常消息模板并通过钉钉群助手向开发人员发送通知,同时向用户所在客户端发送提示信息。
2.根据权利要求1所述的方法,其特征在于,还包括:
若不需要,则向用户所在客户端发送提示消息。
3.根据权利要求1所述的方法,其特征在于:所述解析所述异常以判断所述异常是否需要钉钉通知,包括:
解析所述异常,获取所述异常类型;
根据所述异常类型判断所述异常是否需要钉钉通知。
4.根据权利要求1或2所述的方法,其特征在于:所述向用户所在客户端发送异常提示信息包括:
获取所述客户端请求头的语言标识;
将所示异常提示信息的语言转换为所述语言标识对应的语言;
将转换语言后的异常提示信息发送到用户所在客户端。
5.根据权利要求1所述的方法,其特征在于:所述获取异常消息模板,包括:
所述异常所示业务类型、报告所述异常的方法、所述方法的入参和具体的异常信息。
6.一种基于Spring MVC框架的系统异常处理装置,其特征在于,包括:
异常处理模块,用于当监测Controller抛出异常时,解析所述异常以判断所述异常是否需要钉钉通知;
异常通知模块,用于若需要,则获取异常消息模板并通过钉钉群助手向开发人员发送通知,同时向用户所在客户端发送提示信息。
7.一种基于Spring MVC框架的系统异常处理设备,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
所述处理器被配置为用于执行权利要求1-5任一项所述的方法。
CN202310526991.6A 2023-05-10 2023-05-10 一种基于Spring MVC框架的系统异常处理方法、装置和设备 Pending CN116566810A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310526991.6A CN116566810A (zh) 2023-05-10 2023-05-10 一种基于Spring MVC框架的系统异常处理方法、装置和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310526991.6A CN116566810A (zh) 2023-05-10 2023-05-10 一种基于Spring MVC框架的系统异常处理方法、装置和设备

Publications (1)

Publication Number Publication Date
CN116566810A true CN116566810A (zh) 2023-08-08

Family

ID=87489346

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310526991.6A Pending CN116566810A (zh) 2023-05-10 2023-05-10 一种基于Spring MVC框架的系统异常处理方法、装置和设备

Country Status (1)

Country Link
CN (1) CN116566810A (zh)

Similar Documents

Publication Publication Date Title
US7788540B2 (en) Tracking down elusive intermittent failures
US7664986B2 (en) System and method for determining fault isolation in an enterprise computing system
CN107562556B (zh) 故障的恢复方法、恢复装置及存储介质
US20220321440A1 (en) Interface Service Function Monitoring Method and System Based on Data Acquisition
US11323463B2 (en) Generating data structures representing relationships among entities of a high-scale network infrastructure
WO2019223062A1 (zh) 系统异常的处理方法和系统
JP2001188765A (ja) 分散コンピューティング環境で複数の関係する障害を表す障害情報を参照する技法
KR20160132698A (ko) 지능형 시스템 진단 장치 및 방법
CN111190755B (zh) 应用程序的功能异常处理方法及装置
CN111209166A (zh) 一种面向b/s架构业务系统的自动巡检系统
WO2012174946A1 (zh) 软件自动测试的方法及系统
CN113452607A (zh) 分布式链路采集的方法、装置、计算设备和存储介质
CN107908525B (zh) 告警处理方法、设备及可读存储介质
US11874728B2 (en) Software application diagnostic aid
CN110554929A (zh) 数据校验方法、装置、计算机设备及存储介质
WO2019005294A1 (en) RECOVERING APPLICATION FOLLOWING AN ERROR
CN112765246A (zh) 任务处理方法、装置、电子设备和存储介质
CN116566810A (zh) 一种基于Spring MVC框架的系统异常处理方法、装置和设备
JP6317074B2 (ja) 障害通知装置、障害通知プログラムならびに障害通知方法
JP2001014187A (ja) 障害診断システム
CN110362464B (zh) 软件分析方法及设备
CN111639249A (zh) 用户反馈报错的自动监测方法、装置和设备
CN114428715A (zh) 一种日志处理方法、装置、系统及存储介质
EP2533153B1 (en) Unit for managing messages indicating event situations of monitored objects
KR20170127876A (ko) 로그 결함 분석 기반 장애 대응 시스템 및 방법

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination