CN113434394A - 软件的异常处理方法及装置、存储介质及电子装置 - Google Patents
软件的异常处理方法及装置、存储介质及电子装置 Download PDFInfo
- Publication number
- CN113434394A CN113434394A CN202110693518.8A CN202110693518A CN113434394A CN 113434394 A CN113434394 A CN 113434394A CN 202110693518 A CN202110693518 A CN 202110693518A CN 113434394 A CN113434394 A CN 113434394A
- Authority
- CN
- China
- Prior art keywords
- software
- page
- version
- target software
- exception handling
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本发明公开了一种软件的异常处理方法及装置、存储介质及电子装置,其中,上述方法包括:对目标软件进行检测,得到运行信息,其中,所述运行信息用于指示所述目标软件的运行状态;通过所述运行信息确定所述目标软件运行异常的情况下,确定所述目标软件的软件版本,其中,所述软件版本包括:公开版本,调试版本;获取所述软件版本的异常处理策略,并根据所述异常处理策略对所述目标软件进行异常处理,以使所述目标软件正常运行。采用上述技术方案,解决了Flutter软件在出现异常的情况下,只能重启软件,导致软件的交互性较差的问题。
Description
技术领域
本发明涉及通信领域,具体而言,涉及一种软件的异常处理方法及装置、存储介质及电子装置。
背景技术
随着软件开发的快速发展,越来越多人使用Flutter软件,但Flutter软件要是出现问题和异常,会导致软件灰屏,且无法退出出现异常的界面,故用户不得不重启软件,影响用户体验。
针对相关技术,Flutter软件在出现异常的情况下,只能重启软件,导致软件的交互性较差的问题,目前尚未提出有效的解决方案。
因此,有必要对相关技术予以改良以克服相关技术中的所述缺陷。
发明内容
本发明实施例提供了一种软件的异常处理方法及装置、存储介质及电子装置,以至少解决Flutter软件在出现异常的情况下,只能重启软件,导致软件的交互性较差的问题。
根据本发明实施例的一方面,提供一种软件的异常处理方法,包括:对目标软件进行检测,得到运行信息,其中,所述运行信息用于指示所述目标软件的运行状态;通过所述运行信息确定所述目标软件运行异常的情况下,确定所述目标软件的软件版本,其中,所述软件版本包括:公开版本,调试版本;获取所述软件版本的异常处理策略,并根据所述异常处理策略对所述目标软件进行异常处理,以使所述目标软件正常运行。
进一步地,获取所述软件版本的异常处理策略,包括:在所述软件版本为所述调试版本,且所述目标软件的第一页面灰屏的情况下,获取所述调试版本对应的日志页面,以从所述日志页面切换到第二页面,其中,所述日志页面上至少包括以下至少之一:所述目标软件发生异常的异常信息、调用堆栈,所述第二页面为所述第一页面之前的正常页面。
进一步地,根据所述异常处理策略对所述目标软件进行异常处理,以使所述目标软件正常运行,包括:在所述日志页面获取到目标对象的第一触碰事件的情况下,将所述日志页面切换至所述第二页面,以使所述目标软件显示所述第二页面。
进一步地,获取所述软件版本的异常处理策略,包括:在所述软件版本为所述公开版本,且所述目标软件的第一页面灰屏的情况下,获取所述公开版本对应的预设页面,以从所述预设页面切换到第二页面,其中,所述预设页面通过目标对象自定义得到,所述第二页面为所述第一页面之前的正常页面。
进一步地,根据所述异常处理策略对所述目标软件进行异常处理,以使所述目标软件正常运行,包括:在所述预设页面获取到目标对象的第一触碰事件的情况下,将所述预设页面切换至所述第二页面,以使所述目标软件显示所述第二页面。
进一步地,所述方法还包括:在所述预设页面获取到所述目标对象的第二触碰事件的情况下,将所述预设页面切换至日志页面,其中,所述日志页面上至少包括以下至少之一:所述目标软件发生异常的异常信息、调用堆栈,所述第一触碰事件和所述第二触碰事件的触碰时间不同。
根据本发明实施例的另一方面,还提供了一种软件的异常处理装置,包括:检测模块,用于对目标软件进行检测,得到运行信息,其中,所述运行信息用于指示所述目标软件的运行状态;确定模块,用于通过所述运行信息确定所述目标软件运行异常的情况下,确定所述目标软件的软件版本,其中,所述软件版本包括:公开版本,调试版本;处理模块,用于获取所述软件版本的异常处理策略,并根据所述异常处理策略对所述目标软件进行异常处理,以使所述目标软件正常运行。
进一步地,所述处理模块,还用于在所述软件版本为所述调试版本,且所述目标软件的第一页面灰屏的情况下,获取所述调试版本对应的日志页面,以从所述日志页面切换到第二页面,其中,所述日志页面上至少包括以下至少之一:所述目标软件发生异常的异常信息、调用堆栈,所述第二页面为所述第一页面之前的正常页面。
根据本发明实施例的又一方面,还提供了一种计算机可读的存储介质,该计算机可读的存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述软件的异常处理方法。
根据本发明实施例的又一方面,还提供了一种电子装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,上述处理器通过计算机程序执行上述软件的异常处理方法。
通过本发明,对目标软件进行检测,得到运行信息,其中,所述运行信息用于指示所述目标软件的运行状态;通过所述运行信息确定所述目标软件运行异常的情况下,确定所述目标软件的软件版本,其中,所述软件版本包括:公开版本,调试版本;获取所述软件版本的异常处理策略,并根据所述异常处理策略对所述目标软件进行异常处理,以使所述目标软件正常运行。也就是说,在捕获到软件发生异常的情况下,确定软件的软件版本,进而获取软件版本的异常处理策略,对软件进行异常处理,使得软件正常运行,解决了Flutter软件在出现异常的情况下,只能重启软件,导致软件的交互性较差的问题。进而在Flutter软件发生异常的情况下,可以不必重启软件,提高了软件的交互性,使得用户具有较好的用户体验。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示例性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是本发明实施例的软件的异常处理方法的计算机终端的硬件结构框图;
图2是根据本发明实施例的软件的异常处理方法的流程图(一);
图3是根据本发明实施例的软件的异常处理方法的预设页面的示意图;
图4是根据本发明实施例的软件的异常处理方法的流程图(二);
图5是根据本发明实施例的软件的异常处理装置的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本申请实施例中所提供的方法实施例可以在计算机终端或者类似的运算装置中执行。以运行在计算机终端上为例,图1是本发明实施例的软件的异常处理方法的计算机终端的硬件结构框图。如图1所示,计算机终端可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器(Microprocessor Unit,简称是MPU)或可编程逻辑器件(Programmable logic device,简称是PLD))和用于存储数据的存储器104,在一个示例性实施例中,上述计算机终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述计算机终端的结构造成限定。例如,计算机终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示等同功能或比图1所示功能更多的不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的软件的异常处理方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
本实施例提供了一种软件的异常处理方法,图2是根据本发明实施例的软件的异常处理方法的流程图(一),该流程包括如下步骤:
步骤S202,对目标软件进行检测,得到运行信息,其中,所述运行信息用于指示所述目标软件的运行状态;
可选的,可以通过异常检测模块对目标软件进行检测。具体的,目标软件可以的Flutter。
步骤S204,通过所述运行信息确定所述目标软件运行异常的情况下,确定所述目标软件的软件版本,其中,所述软件版本包括:公开版本,调试版本;
步骤S206,获取所述软件版本的异常处理策略,并根据所述异常处理策略对所述目标软件进行异常处理,以使所述目标软件正常运行。
通过上述步骤,对目标软件进行检测,得到运行信息,其中,所述运行信息用于指示所述目标软件的运行状态;通过所述运行信息确定所述目标软件运行异常的情况下,确定所述目标软件的软件版本,其中,所述软件版本包括:公开版本,调试版本;获取所述软件版本的异常处理策略,并根据所述异常处理策略对所述目标软件进行异常处理,以使所述目标软件正常运行。也就是说,在捕获到软件发生异常的情况下,确定软件的软件版本,进而获取软件版本的异常处理策略,对软件进行异常处理,使得软件正常运行,解决了Flutter软件在出现异常的情况下,只能重启软件,导致软件的交互性较差的问题。进而在Flutter软件发生异常的情况下,可以不必重启软件,提高了软件的交互性,使得用户具有较好的用户体验。
需要说明的是,在一个可选的实施例中,获取所述软件版本的异常处理策略,包括:在所述软件版本为所述调试版本,且所述目标软件的第一页面灰屏的情况下,获取所述调试版本对应的日志页面,以从所述日志页面切换到第二页面,其中,所述日志页面上至少包括以下至少之一:所述目标软件发生异常的异常信息、调用堆栈,所述第二页面为所述第一页面之前的正常页面。
也就是说,如果目标软件的第一页面发生灰屏,即目标软件出现异常,需要确定目标软件是调试版本还是公开版本,如果目标软件是调试版本,则需要获取到调试版本对应的日志页面,并显示在目标软件上,以使目标软件的维护人员可以查看目标软件发生异常的信息和调用堆栈,知道软件为什么会发生异常,以及发生异常的时候软件内部的具体参数是什么,进一步得,目标软件还可以将进而将日志页面切换到第二页面。
需要说明的是,根据所述异常处理策略对所述目标软件进行异常处理,以使所述目标软件正常运行,需要在所述日志页面获取到目标对象的第一触碰事件的情况下,将所述日志页面切换至所述第二页面,以使所述目标软件显示所述第二页面。
上述目标对象可以理解成使用目标软件的用户,在软件版本为调试版本的情况下,目标对象即是目标软件的维护人员,只有在日志页面获取到维护人员的第一触碰事件的情况下,才会将日志页面切换到第二页面,具体的,第一触碰信息可以是目标对象点击了日志页面一下,或者连续的点击了日志页面两次。补充说明的是,日志页面还会显示提示信息,提示维护人员可以通过触碰日志页面进入第二页面。
为了更好的理解,以下举例进行说明,如果维护人员在使用目标软件的调试版本,当维护人员在A页面点击进行B页面的按钮的时候,目标软件在进入B页面的那一瞬间,发生了灰屏。具体的,可能是由于B页面的代码有问题导致的,当目标软件检测到灰屏以后,会获取到调试版本对应的日志页面,将日志页面显示在目标软件上,并在日志页面上显示异常原因、调用堆栈,以及提示信息,随后维护人员可通过提示信息点击日志页面,返回到A页面,也就是上述实施例中的第二页面。
进一步地,获取所述软件版本的异常处理策略,还包括:在所述软件版本为所述公开版本,且所述目标软件的第一页面卡住的情况下,获取所述公开版本对应的预设页面,以从所述预设页面切换到第二页面,其中,所述预设页面通过目标对象自定义得到,所述第二页面为所述第一页面之前的正常页面。
也就是说,如果目标软件的第一页面发生灰屏,即目标软件出现异常,需要确定目标软件是调试版本还是公开版本,如果目标软件是公开版本,则需要获取到公开版本对应的预设页面,并显示在目标软件上,为用户展示友好的界面,进一步得,目标软件还可以将进而将日志页面切换到第二页面。
需要说明的是,根据所述异常处理策略对所述目标软件进行异常处理,以使所述目标软件正常运行,需要在所述预设页面获取到目标对象的第一触碰事件的情况下,将所述预设页面切换至所述第二页面,以使所述目标软件显示所述第二页面。
也就是说,只有在预设页面获取到用户的第一触碰事件的情况下,才会将预设页面切换到第二页面,具体的,第一触碰信息可以是用户点击了预设页面一下,或者连续的点击了预设页面两次。补充说明的是,预设页面还会显示提示信息,提示用户可以通过触碰预设页面进入第二页面。
为了更好的理解,以下举例进行说明,如果用户在使用目标软件的公开版本,当用户在A页面点击进行B页面的按钮的时候,目标软件在进入B页面的那一瞬间,发生了灰屏。具体的,可能是由于B页面的代码有问题导致的,当目标软件检测到灰屏以后,会获取到公开版本对应的预设页面,将预设页面显示在目标软件上,并在预设页面上显示提示信息,图3是根据本发明实施例的软件的异常处理方法的预设页面的示意图,具体预设页面可以参考图3所示,进而用户可通过提示信息点击预设页面,返回到A页面,也就是上述实施例中的第二页面。
进一步的,在一个可选的实施例中,在所述预设页面获取到所述目标对象的第二触碰事件的情况下,将所述预设页面切换至日志页面,其中,所述日志页面上至少包括以下至少之一:所述目标软件发生异常的异常信息、调用堆栈,所述第一触碰事件和所述第二触碰事件的触碰时间不同。
也就是说,有可能是目标软件的维护人员在使用目标软件的公开版本,故当目标软件出现异常进行到预设页面以后,维护人员可以通过长时间触碰预设页面进入到公开版本的日志页面,对应的,目标软件可以检测到维护人员的第二触碰事件,进而将预设页面切换至日志页面,使得维护人员可以在日志页面上看到目标软件发生异常的异常信息、调用堆栈。需要说明的是,维护人员在公开版本对应的日志页面通过第一触碰事件也可以返回到第二页面。
为了更好的理解,以下举例进行说明,如果维护人员在使用目标软件的公开版本,当维护人员在A页面点击进行B页面的按钮的时候,目标软件在进入B页面的那一瞬间,发生了灰屏。具体的,可能是由于B页面的代码有问题导致的,当目标软件检测到灰屏以后,会获取到公开版本对应的预设页面,将预设页面显示在目标软件上,并在预设页面上显示提示信息,维护人员可以不通过提示信息点击预设页面,返回到A页面,而是通过长时间触碰预设页面进入到公开版本的日志页面,获取目标软件发生异常的异常信息、调用堆栈。最后,维护人员可以在公开版本对应的日志页面通过第一触碰事件也可以返回到A页面。
显然,上述所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。为了更好的理解上述软件的异常处理方法,以下结合实施例对上述过程进行说明,但不用于限定本发明实施例的技术方案,具体地:
在一个可选的实施例中,图4是根据本发明实施例的软件的异常处理方法的流程图(二),具体步骤如下:
步骤S402:检测flutter软件(相当于上述实施例中的目标软件)是否发生异常;
步骤S404:在检测到软件发生异常的情况下,捕获异常信息;
步骤S406:确定软件的版本,具体的,软件版本分为debug版本(相当于上述实施例中的调试版本)和release版本(相当于上述实施例中的公开版本);
步骤S408:判断软件版本是否是debug版本,若是,执行步骤S410,若否,执行步骤S414;
步骤S410:在软件上显示异常日志页面(相当于上述实施例中的日志页面);
步骤S412:在检测到用户单击(相当于上述实施例中的第一触碰事件)异常日志页面的屏幕的情况下,返回到异常前的页面;
步骤S414:在软件上显示自定义异常页面(相当于上述实施例中的预设页面);
步骤S416:在检测到用户单击自定义异常页面的屏幕的情况下,返回到异常前的页面;
步骤S418:在检测到用户长按(相当于上述实施例中的第二触碰事件)自定义异常页面的屏幕的情况下,切换至异常日志页面。
为了更好的理解,以下做具体说明,如果软件出现异常,例如,用户打开一个新界面,但这个界面代码有问题,故导致运行异常。此时可以通过一些方式捕获到异常信息,其中,异常信息包括调用堆栈,及异常原因。进而需要判断当前软件是debug版还是release版,如果是release版就应该展示更加友好的界面,显示自定义的异常界面,大致界面如下图3,并提示用户点击自定义界面任意位置,返回到异常之前的界面,以保证用户可以继续操作软件,而不是必须重启软件。如果是debug版,也就只有开发人员及测试人员使用,直接展示错误信息,方便异常定位及修复。具体的,显示日志界面(相当于上述实施例中的日志页面),其中,日志界面会显示调用堆栈,及异常原因,及提示‘点击返回’,当用户点击日志界面任意位置,返回到异常之前的界面,以保证用户可以继续操作软件,而不是必须重启软件。
需要说明的是,在release版,用户也可以长时间触碰自定义的异常界面的任意位置,进入日志界面,但此操作在release版是隐藏功能,不需要引导用户操作,所以没有提示。
为了更好的理解,以下为本方案的核心代码及对应的流程步骤:
Future<void>main()async{
runZoned((){
ErrorWidget.builder=(details){//捕获异常
Zone.current.handleUncaughtError(details.exception,details.stack);
bool inDebug=false; //判断版本
assert((){
inDebug=true;
return true;
}());
return SYNErrorWidget(inDebug,details);}; //展示异常界面
FlutterError.onError=(details){
FlutterError.dumpErrorToConsole(details);
Zone.current.handleUncaughtError(details.exception,details.stack);};
runApp(setProvider());
},onError:(obj,stack){
print(obj);
print(stack);
});
}
class SYNErrorWidget extends StatelessWidget{
bool inDebug=false;
FlutterErrorDetails details;
SYNErrorWidget(this.inDebug,this.details);
@override
Widget build(BuildContext context){
return Scaffold(
body:GestureDetector(
onTap:(){ //点击返回
Navigator.pop(context);},
onLongPress:(){ //长按进如日志界面,是release版才有此隐藏功能
if(!inDebug){
Navigator.of(context).push(PageRouteBuilder(opaque:false,pageBuilder:(ctx,animation,secondAnimation){
return SYNErrorWidget(true,details);
}));
}
},
child:inDebug==false //判断版本,展示不同界面
?Container(//展示自定义异常界面
height:double.maxFinite,
width:double.maxFinite,
color:SYNColors.grayEEEEEE,
alignment:Alignment.center,
child:Column(
mainAxisSize:MainAxisSize.min,
children:<Widget>[
Image.asset(
'images/图片加载失败.png',
fit:BoxFit.fill,
width:60,
),
SizedBox(
height:10,
),
Text('程序出小差了,点击返回',
style:TextStyle(
color:SYNColors.gray99999,
fontSize:12,
),
),
],
),
)
:Container( //展示日志界面
height:double.maxFinite,
width:double.maxFinite,
color:SYNColors.redFE3826,
padding:EdgeInsets.all(20),
child:ListView(children:[
Text("提醒你,程序出了一个小bug,点击红色区域返回上级页面\n${details?.exception}\n${details?.stack}",
style:TextStyle(
color:Colors.white,
fontSize:8,
),
)
]),
)),
);
}
}
此外,本发明实施例的上述技术方案,根据flutter软件的release版和debug版的不同使用人群对软件的要求的不同(真实用户希望有较好的界面交互,开发测试人员希望能尽快定位异常原因),展示不同的异常界面,使得在异常界面,用户依然可以进行操作(返回),不必重启软件,降低异常对软件交互的影响。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例的方法。
在本实施例中还提供了一种软件的异常处理装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的设备较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图5是根据本发明实施例的软件的异常处理装置的结构框图,该装置包括:
检测模块52,用于对目标软件进行检测,得到运行信息,其中,所述运行信息用于指示所述目标软件的运行状态;
确定模块54,用于通过所述运行信息确定所述目标软件运行异常的情况下,确定所述目标软件的软件版本,其中,所述软件版本包括:公开版本,调试版本;
处理模块56,用于获取所述软件版本的异常处理策略,并根据所述异常处理策略对所述目标软件进行异常处理,以使所述目标软件正常运行。
通过上述模块,对目标软件进行检测,得到运行信息,其中,所述运行信息用于指示所述目标软件的运行状态;通过所述运行信息确定所述目标软件运行异常的情况下,确定所述目标软件的软件版本,其中,所述软件版本包括:公开版本,调试版本;获取所述软件版本的异常处理策略,并根据所述异常处理策略对所述目标软件进行异常处理,以使所述目标软件正常运行。也就是说,在捕获到软件发生异常的情况下,确定软件的软件版本,进而获取软件版本的异常处理策略,对软件进行异常处理,使得软件正常运行,解决了Flutter软件在出现异常的情况下,只能重启软件,导致软件的交互性较差的问题。进而在Flutter软件发生异常的情况下,可以不必重启软件,提高了软件的交互性,使得用户具有较好的用户体验。
需要说明的是,在一个可选的实施例中,处理模块56还用于在所述软件版本为所述调试版本,且所述目标软件的第一页面灰屏的情况下,获取所述调试版本对应的日志页面,以从所述日志页面切换到第二页面,其中,所述日志页面上至少包括以下至少之一:所述目标软件发生异常的异常信息、调用堆栈,所述第二页面为所述第一页面之前的正常页面。
也就是说,如果目标软件的第一页面发生灰屏,即目标软件出现异常,需要确定目标软件是调试版本还是公开版本,如果目标软件是调试版本,则需要获取到调试版本对应的日志页面,并显示在目标软件上,以使目标软件的维护人员可以查看目标软件发生异常的信息和调用堆栈,知道软件为什么会发生异常,以及发生异常的时候软件内部的具体参数是什么,进一步得,目标软件还可以将进而将日志页面切换到第二页面。
需要说明的是,处理模块56还用于在所述日志页面获取到目标对象的第一触碰事件的情况下,将所述日志页面切换至所述第二页面,以使所述目标软件显示所述第二页面。
上述目标对象可以理解成使用目标软件的用户,在软件版本为调试版本的情况下,目标对象即是目标软件的维护人员,只有在日志页面获取到维护人员的第一触碰事件的情况下,才会将日志页面切换到第二页面,具体的,第一触碰信息可以是目标对象点击了日志页面一下,或者连续的点击了日志页面两次。补充说明的是,日志页面还会显示提示信息,提示维护人员可以通过触碰日志页面进入第二页面。
为了更好的理解,以下举例进行说明,如果维护人员在使用目标软件的调试版本,当维护人员在A页面点击进行B页面的按钮的时候,目标软件在进入B页面的那一瞬间,发生了灰屏。具体的,可能是由于B页面的代码有问题导致的,当目标软件检测到灰屏以后,会获取到调试版本对应的日志页面,将日志页面显示在目标软件上,并在日志页面上显示异常原因、调用堆栈,以及提示信息,随后维护人员可通过提示信息点击日志页面,返回到A页面,也就是上述实施例中的第二页面。
进一步地,处理模块56还用于在所述软件版本为所述公开版本,且所述目标软件的第一页面卡住的情况下,获取所述公开版本对应的预设页面,以从所述预设页面切换到第二页面,其中,所述预设页面通过目标对象自定义得到,所述第二页面为所述第一页面之前的正常页面。
也就是说,如果目标软件的第一页面发生灰屏,即目标软件出现异常,需要确定目标软件是调试版本还是公开版本,如果目标软件是公开版本,则需要获取到公开版本对应的预设页面,并显示在目标软件上,为用户展示友好的界面,进一步得,目标软件还可以将进而将日志页面切换到第二页面。
需要说明的是,处理模块56还用于在所述预设页面获取到目标对象的第一触碰事件的情况下,将所述预设页面切换至所述第二页面,以使所述目标软件显示所述第二页面。
也就是说,只有在预设页面获取到用户的第一触碰事件的情况下,才会将预设页面切换到第二页面,具体的,第一触碰信息可以是用户点击了预设页面一下,或者连续的点击了预设页面两次。补充说明的是,预设页面还会显示提示信息,提示用户可以通过触碰预设页面进入第二页面。
为了更好的理解,以下举例进行说明,如果用户在使用目标软件的公开版本,当用户在A页面点击进行B页面的按钮的时候,目标软件在进入B页面的那一瞬间,发生了灰屏。具体的,可能是由于B页面的代码有问题导致的,当目标软件检测到灰屏以后,会获取到公开版本对应的预设页面,将预设页面显示在目标软件上,并在预设页面上显示提示信息,图3是根据本发明实施例的软件的异常处理方法的预设页面的示意图,具体预设页面可以参考图3所示,进而用户可通过提示信息点击预设页面,返回到A页面,也就是上述实施例中的第二页面。
进一步的,在一个可选的实施例中,处理模块56还用于在所述预设页面获取到所述目标对象的第二触碰事件的情况下,将所述预设页面切换至日志页面,其中,所述日志页面上至少包括以下至少之一:所述目标软件发生异常的异常信息、调用堆栈,所述第一触碰事件和所述第二触碰事件的触碰时间不同。
也就是说,有可能是目标软件的维护人员在使用目标软件的公开版本,故当目标软件出现异常进行到预设页面以后,维护人员可以通过长时间触碰预设页面进入到公开版本的日志页面,对应的,目标软件可以检测到维护人员的第二触碰事件,进而将预设页面切换至日志页面,使得维护人员可以在日志页面上看到目标软件发生异常的异常信息、调用堆栈。需要说明的是,维护人员在公开版本对应的日志页面通过第一触碰事件也可以返回到第二页面。
为了更好的理解,以下举例进行说明,如果维护人员在使用目标软件的公开版本,当维护人员在A页面点击进行B页面的按钮的时候,目标软件在进入B页面的那一瞬间,发生了灰屏。具体的,可能是由于B页面的代码有问题导致的,当目标软件检测到灰屏以后,会获取到公开版本对应的预设页面,将预设页面显示在目标软件上,并在预设页面上显示提示信息,维护人员可以不通过提示信息点击预设页面,返回到A页面,而是通过长时间触碰预设页面进入到公开版本的日志页面,获取目标软件发生异常的异常信息、调用堆栈。最后,维护人员可以在公开版本对应的日志页面通过第一触碰事件也可以返回到A页面。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,对目标软件进行检测,得到运行信息,其中,所述运行信息用于指示所述目标软件的运行状态;
S2,通过所述运行信息确定所述目标软件运行异常的情况下,确定所述目标软件的软件版本,其中,所述软件版本包括:公开版本,调试版本;
S3,获取所述软件版本的异常处理策略,并根据所述异常处理策略对所述目标软件进行异常处理,以使所述目标软件正常运行。
在一个示例性实施例中,上述计算机可读存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本实施例中的具体示例可以参考上述实施例及示例性实施方式中所描述的示例,本实施例在此不再赘述。
本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,对目标软件进行检测,得到运行信息,其中,所述运行信息用于指示所述目标软件的运行状态;
S2,通过所述运行信息确定所述目标软件运行异常的情况下,确定所述目标软件的软件版本,其中,所述软件版本包括:公开版本,调试版本;
S3,获取所述软件版本的异常处理策略,并根据所述异常处理策略对所述目标软件进行异常处理,以使所述目标软件正常运行。
在一个示例性实施例中,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
本实施例中的具体示例可以参考上述实施例及示例性实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种软件的异常处理方法,其特征在于,包括:
对目标软件进行检测,得到运行信息,其中,所述运行信息用于指示所述目标软件的运行状态;
通过所述运行信息确定所述目标软件运行异常的情况下,确定所述目标软件的软件版本,其中,所述软件版本包括:公开版本,调试版本;
获取所述软件版本的异常处理策略,并根据所述异常处理策略对所述目标软件进行异常处理,以使所述目标软件正常运行。
2.根据权利要求1所述的软件的异常处理方法,其特征在于,获取所述软件版本的异常处理策略,包括:
在所述软件版本为所述调试版本,且所述目标软件的第一页面灰屏的情况下,获取所述调试版本对应的日志页面,以从所述日志页面切换到第二页面,其中,所述日志页面上至少包括以下至少之一:所述目标软件发生异常的异常信息、调用堆栈,所述第二页面为所述第一页面之前的正常页面。
3.根据权利要求2所述的软件的异常处理方法,其特征在于,根据所述异常处理策略对所述目标软件进行异常处理,以使所述目标软件正常运行,包括:
在所述日志页面获取到目标对象的第一触碰事件的情况下,将所述日志页面切换至所述第二页面,以使所述目标软件显示所述第二页面。
4.根据权利要求1所述的软件的异常处理方法,其特征在于,获取所述软件版本的异常处理策略,包括:
在所述软件版本为所述公开版本,且所述目标软件的第一页面灰屏的情况下,获取所述公开版本对应的预设页面,以从所述预设页面切换到第二页面,其中,所述预设页面通过目标对象自定义得到,所述第二页面为所述第一页面之前的正常页面。
5.根据权利要求4所述的软件的异常处理方法,其特征在于,根据所述异常处理策略对所述目标软件进行异常处理,以使所述目标软件正常运行,包括:
在所述预设页面获取到目标对象的第一触碰事件的情况下,将所述预设页面切换至所述第二页面,以使所述目标软件显示所述第二页面。
6.根据权利要求5所述的软件的异常处理方法,其特征在于,所述方法还包括:
在所述预设页面获取到所述目标对象的第二触碰事件的情况下,将所述预设页面切换至日志页面,其中,所述日志页面上至少包括以下至少之一:所述目标软件发生异常的异常信息、调用堆栈,所述第一触碰事件和所述第二触碰事件的触碰时间不同。
7.一种软件的异常处理装置,其特征在于,包括:
检测模块,用于对目标软件进行检测,得到运行信息,其中,所述运行信息用于指示所述目标软件的运行状态;
确定模块,用于通过所述运行信息确定所述目标软件运行异常的情况下,确定所述目标软件的软件版本,其中,所述软件版本包括:公开版本,调试版本;
处理模块,用于获取所述软件版本的异常处理策略,并根据所述异常处理策略对所述目标软件进行异常处理,以使所述目标软件正常运行。
8.根据权利要求7所述的软件的异常处理装置,其特征在于,所述处理模块,还用于在所述软件版本为所述调试版本,且所述目标软件的第一页面灰屏的情况下,获取所述调试版本对应的日志页面,以从所述日志页面切换到第二页面,其中,所述日志页面上至少包括以下至少之一:所述目标软件发生异常的异常信息、调用堆栈,所述第二页面为所述第一页面之前的正常页面。
9.一种计算机可读的存储介质,其特征在于,所述计算机可读的存储介质包括存储的程序,其中,所述程序运行时执行上述权利要求1至6任一项中所述的方法。
10.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为通过所述计算机程序执行所述权利要求1至6任一项中所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110693518.8A CN113434394B (zh) | 2021-06-22 | 2021-06-22 | 软件的异常处理方法及装置、存储介质及电子装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110693518.8A CN113434394B (zh) | 2021-06-22 | 2021-06-22 | 软件的异常处理方法及装置、存储介质及电子装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113434394A true CN113434394A (zh) | 2021-09-24 |
CN113434394B CN113434394B (zh) | 2023-07-21 |
Family
ID=77757166
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110693518.8A Active CN113434394B (zh) | 2021-06-22 | 2021-06-22 | 软件的异常处理方法及装置、存储介质及电子装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113434394B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101178684A (zh) * | 2006-11-06 | 2008-05-14 | 中兴通讯股份有限公司 | 一种嵌入式系统的符号定位方法 |
US20090089629A1 (en) * | 2007-09-27 | 2009-04-02 | Microsoft Corporation | Capturing diagnostics in web browser applications |
CN104219080A (zh) * | 2013-06-05 | 2014-12-17 | 北京齐尔布莱特科技有限公司 | 一种网站错误页日志记录方法 |
CN106484425A (zh) * | 2016-10-19 | 2017-03-08 | 济南浪潮高新科技投资发展有限公司 | 一种基于策略配置的异常处理方法 |
CN110554932A (zh) * | 2019-08-02 | 2019-12-10 | 恒鸿达科技有限公司 | 一种api模块异常检测方法 |
CN111309505A (zh) * | 2020-02-11 | 2020-06-19 | 北京三快在线科技有限公司 | 页面异常处理方法、装置、电子设备 |
CN111737143A (zh) * | 2020-07-17 | 2020-10-02 | 北京热云科技有限公司 | 一种网页ab测试故障排查方法及系统 |
CN112948157A (zh) * | 2021-01-29 | 2021-06-11 | 苏州浪潮智能科技有限公司 | 服务器故障定位方法、装置、系统及计算机可读存储介质 |
CN112965913A (zh) * | 2021-03-26 | 2021-06-15 | 东北大学 | 一种Java软件依赖冲突问题自动化修复的方法 |
-
2021
- 2021-06-22 CN CN202110693518.8A patent/CN113434394B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101178684A (zh) * | 2006-11-06 | 2008-05-14 | 中兴通讯股份有限公司 | 一种嵌入式系统的符号定位方法 |
US20090089629A1 (en) * | 2007-09-27 | 2009-04-02 | Microsoft Corporation | Capturing diagnostics in web browser applications |
CN104219080A (zh) * | 2013-06-05 | 2014-12-17 | 北京齐尔布莱特科技有限公司 | 一种网站错误页日志记录方法 |
CN106484425A (zh) * | 2016-10-19 | 2017-03-08 | 济南浪潮高新科技投资发展有限公司 | 一种基于策略配置的异常处理方法 |
CN110554932A (zh) * | 2019-08-02 | 2019-12-10 | 恒鸿达科技有限公司 | 一种api模块异常检测方法 |
CN111309505A (zh) * | 2020-02-11 | 2020-06-19 | 北京三快在线科技有限公司 | 页面异常处理方法、装置、电子设备 |
CN111737143A (zh) * | 2020-07-17 | 2020-10-02 | 北京热云科技有限公司 | 一种网页ab测试故障排查方法及系统 |
CN112948157A (zh) * | 2021-01-29 | 2021-06-11 | 苏州浪潮智能科技有限公司 | 服务器故障定位方法、装置、系统及计算机可读存储介质 |
CN112965913A (zh) * | 2021-03-26 | 2021-06-15 | 东北大学 | 一种Java软件依赖冲突问题自动化修复的方法 |
Non-Patent Citations (3)
Title |
---|
BYEONG-MO CHANG等: "A review on exception analysis", INFORMATION AND SOFTWARE TECHNOLOGY * |
宋晓宇: "基于开源引擎的网络游戏应用研究", 中国优秀硕士学位论文全文数据库 信息科技辑 * |
柯化成: "软件开发"善守"之道——谈监错/防错设计和异常处理机制", 程序员 * |
Also Published As
Publication number | Publication date |
---|---|
CN113434394B (zh) | 2023-07-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10241857B2 (en) | Method, apparatus and system for automatically repairing device | |
CN110324612B (zh) | 电视机的测试方法、测试控制终端和电视机 | |
CN110162343B (zh) | 应用启动方法及装置、电子设备及存储介质 | |
CN107329659B (zh) | 一种权限设置方法、装置、电子设备及存储介质 | |
CN109634479A (zh) | 全屏状态下的通知信息处理方法、设备、存储介质及装置 | |
KR101684405B1 (ko) | 휴대용 단말기에서 에러 발생을 분석하기 위한 장치 및 방법 | |
CN107967127A (zh) | 一种信息显示方法及终端 | |
CN106919489B (zh) | 应用程序的应用界面异常退出的监测方法及装置 | |
CN105303143B (zh) | 一种信息扫描处理方法、系统及终端 | |
CN105809117A (zh) | 一种信息提示方法及用户终端 | |
EP3863321B1 (en) | Method, device and medium for handling network connection abnormality of terminal | |
CN110688308A (zh) | 内存存储冗余检测方法、装置、电子设备及可读存储介质 | |
CN113434394B (zh) | 软件的异常处理方法及装置、存储介质及电子装置 | |
CN107544724A (zh) | 在电子终端快速进入应用界面的方法和设备 | |
CN105630320A (zh) | 终端的屏幕解锁方法及屏幕解锁装置 | |
CN115509781A (zh) | 安卓系统中页面渲染控件异常的处理方法和装置 | |
CN111081365A (zh) | 一种信息显示方法、样本分析流水线及计算机存储介质 | |
CN108345486A (zh) | 一种界面覆盖方法、设备及可读介质 | |
CN106775633A (zh) | 一种自动切换默认Launcher的方法、装置及终端 | |
CN114090122A (zh) | 小程序配置cpe的方法、装置、计算机设备及存储介质 | |
CN111427642A (zh) | 数据处理方法、装置、终端设备及计算机可读存储介质 | |
CN112115057A (zh) | 应用程序页面搭建流程的自动测试方法、装置及设备 | |
CN105955861A (zh) | 故障检测装置、方法及移动终端 | |
KR100932603B1 (ko) | 모바일 gui 테스트 방법 및 장치 | |
CN112698983A (zh) | 一种数据处理方法和相关装置 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |