一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

应用异常处理方法和装置与流程

2022-02-19 09:17:21 来源:中国专利 TAG:


1.本公开涉及异常处理领域,尤其涉及一种应用异常处理方法和装置。


背景技术:

2.相关技术中,对于应用程序运行过程中出现的异常,通常是在上报给服务器后,通过调用异常处理程序对应用程序进行异常处理和修复。
3.但是,对于应用程序的启动异常,由于启动程序处于应用较为前端的流程,此时,日志模块无法及时地进行异常上报,也就无法及时调用异常处理程序对启动异常进行处理。同时,由于应用程序中的启动线程处于一直尝试启动的状态,阻碍了对于启动异常的处理。
4.针对上述的问题,目前尚未提出有效的解决方案。


技术实现要素:

5.本公开提供一种数据处理方法和装置,以至少解决相关技术中对应用程序的启动异常处理效率低的问题。本公开的技术方案如下:
6.根据本公开实施例的第一方面,提供一种应用异常处理方法,包括确定应用启动异常;阻塞上述应用的主线程;基于启动异常的异常原因,对上述启动异常进行热修复,其中,上述热修复为不关闭上述应用所进行的修复。
7.根据本公开实施例的第二方面,提供一种应用异常处理装置,包括确定单元,用于确定应用启动异常;停止单元,用于阻塞上述应用的主线程;修复单元,用于基于启动异常的异常原因,对上述启动异常进行热修复,其中,上述热修复为不关闭上述应用所进行的修复。
8.根据本发明实施例的第三方面,提供了一种计算机可读的存储介质,该计算机可读的存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述应用异常处理方法。
9.根据本发明实施例的第四方面,还提供了一种计算机程序产品,包括计算机程序/指令,上述计算机程序/指令被处理器执行时实现上述应用异常处理方法。
10.根据本发明实施例的第五方面,提供了一种电子设备,包括存储器和处理器,上述存储器中存储有计算机程序,上述处理器被设置为通过所述计算机程序执行上述应用异常处理方法。
11.本公开的实施例提供的技术方案至少带来以下有益效果:
12.在确定应用启动异常的情况系下,阻塞应用的主线程,并基于启动异常的异常原因,对启动异常进行热修复,实现了在确定应用启动异常时,通过阻塞主线程的方式,对启动异常进行不关闭应用的热修复,通过阻塞主线程和热修复的方式,实现了对应用启动异常及时处理。
13.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不
能限制本公开。
附图说明
14.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
15.图1是根据一示例性实施例示出的一种应用异常处理方法的流程图。
16.图2是根据一示例性实施例示出的一种应用异常处理方法的流程图。
17.图3是根据一示例性实施例示出的一种应用异常处理方法的流程图。
18.图4是根据一示例性实施例示出的一种应用异常处理装置的框图。
19.图5是根据一示例性实施例示出的一种电子设备的框图。
具体实施方式
20.为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
21.需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
22.图1是根据一示例性实施例示出的一种应用异常处理方法的流程图,如图1所示,应用异常处理方法用于服务器中,包括以下步骤。
23.在步骤s11中,确定应用启动异常。
24.在步骤s12中,阻塞应用的主线程。
25.在步骤s13中,基于启动异常的异常原因,对启动异常进行热修复,其中,热修复为不关闭应用所进行的修复。
26.可选地,应用启动异常不限于是应用启动失败或应用在预设时长内未反馈启动结果,也就是应用在预设时长内未启动成功。
27.可选地,阻塞应用的主线程不限于是确定出启动异常是否为应用的主线程异常。在确定应用启动异常为主线程异常的情况下,阻塞应用的主线程。阻塞主线程是指暂停主线程的运行,等待主线程启动异常被修复。
28.可选地,热修复是指在不关闭应用的情况下,利用修复补丁的方式对主线程进行修复。在主线程修复完成的情况下,继续实现主线程的运行。
29.在本技术实施例中,在确定应用启动异常的情况下,通过阻塞应用的主线程并启动热修复的方式,在不关闭应用的情况下,对主线程进行及时修复,提高异常修复的效率的及时性。
30.作为一种可选地实施方式,上述确定应用启动异常,包括以下至少之一:
31.统计应用启动异常的次数,在次数达到预定次数阈值的情况下,确定应用启动异常;
32.获取应用启动异常的时长,在时长达到预定时长阈值的情况下,确定应用启动异常。
33.可选地,在应用的启动异常次数达到次数阈值的情况下,确定应用启动异常。在应用的启动时长达到时长阈值的情况下,确定应用启动异常。
34.可选地,在确定应用启动异常的情况下,确定应用发生启动异常的线程是否为应用的主线程。在应用的主线程启动异常的情况下,阻塞应用的主线程,以使用热修复的形式对主线程进行修复。
35.在本技术实施例中,通过启动异常次数和启动异常时长进行启动异常的判断,对于初始的启动异常利用应用本身进行修复,只有在确定是应用无法自动修复的启动异常的情况下,通过阻塞主线程和调用热修复的方式,对启动异常的主线程进行修复。
36.作为一种可选地实施方式,上述在阻塞应用的主线程之前,还包括:通过以下方式至少之一,确定启动应用的主线程:主线程的名称,主线程的创建时间。
37.可选地,在确定应用启动异常的情况下,确定应用启动异常所在的线程时,不限于通过名称和/或创建时间确定启动异常所在的线程是否为主线程。在确定应用启动异常为主线程启动异常的情况下,阻塞主线程。在确定应用启动异常不是主线程启动异常的情况下,对应用启动异常所在的线程进行修复。
38.作为一种可选地实施方式,如图2所示,上述在确定应用启动异常之后,还包括:
39.s21,控制应用进入预定模式;
40.s22,基于启动异常的异常原因,对启动异常进行热修复包括:在预定模式下,基于启动异常的异常原因,对启动异常进行热修复。
41.可选地,在确定应用的主线程启动异常的情况下,控制应用进入预定的安全模式,在安全模式下,通过拉取热修复的方式对启动异常进行修复。
42.作为一种可选地实施方式,在控制应用进入预定模式之后,在预定模式下,通过主线程对应用启动异常进行上报。
43.可选地,在预定的安全模式对启动异常进行修复的同时,收集启动异常的相关信息,并将启动异常上报至与应用对应的服务器,实现启动异常的及时上报。
44.在本技术实施例中,在主线程启动异常的情况下,进入安全模式对主线程进行热修复,并收集异常信息进行异常上报,实现了异常的及时修复和及时上报。
45.作为一种可选地实施方式,在控制应用进入预定模式之后,对应用进入预定模式进行计时,并在计时时长达到预定时长的情况下,结束应用的启动。
46.可选地,在应用进入安全模式的情况下,启动安全模式计时,用于标识应用的异常修复的修复时长。在修复时长小于预定时长的情况下,确定应用异常修复成功。在修复时长大于预定时长的情况下,确定应用的热修复未成功,停止应用的异常修复,并结束应用的启动。
47.作为一种可选地实施方式,在基于启动异常的异常原因,对启动异常进行热修复之后,在对启动异常进行热修复成功的情况下,恢复应用的主线程。
48.可选地,在应用进入安全模式,在预定时长内完成对主线程的异常修复的情况下,确定对主线程的启动异常修复完成,并恢复主线程。
49.应用的异常修复流程不限于如图3所示。s301,启动应用。在应用未能启动的情况
下,执行s302,判断启动异常当前是否在主线程中。在s302判断为是,启动异常在主线程的情况下,执行s303,异常次数key=key 1。在更新异常次数的情况下,执行s304,判断key是否大于等于n。在s304判断为是,key大于等于n的情况下,执行s305,调整应用至安全模式。在应用进入安全模式的情况下,执行s306,拉取热修复,进行启动异常修复。在进行启动异常修复时,执行s307,判断修复是否超时。将修复时长与预设修复时长进行对比,在s307判断为否,修复时长小于预设修复时长的情况下,执行s308,确定修复成功。在进行主线程修复的同时执行s309,收集启动异常信息。在收集异常信息之后,执行s310,上报启动异常。在进行启动异常信息收集和上报的同时,执行s311,判断上报是否超时。将上报时长与预设上报时长进行对比。在s311判断为否,上报时长小于预设上报时长的情况下,执行s312,确定上报成功。在修复成功且上报成功的情况下,执行s313,结束安全模式,并将异常次数key置零。
50.在s304判断为否,key小于n的情况下,执行s314,判断应用是否崩溃。在s314判断为否,应用未崩溃的情况下,执行s315,继续尝试启动应用。在应用启动成功的情况下,执行s316,将异常次数key置零,并执行s318,运行应用。在s314判断为是,应用崩溃的情况下,执行s320,关闭应用。
51.图4是根据一示例性实施例示出的一种应用异常处理装置框图。参照图2,该装置包括检测模块41,确定模块42和转换模块43。
52.该确定单元41被配置为确定应用启动异常。
53.该停止单元42被配置为阻塞应用的主线程。
54.该修复单元43被配置为基于启动异常的异常原因,对启动异常进行热修复,其中,热修复为不关闭应用所进行的修复。
55.可选地,上述确定单元41包括以下至少之一:
56.次数模块,用于统计应用启动异常的次数,在次数达到预定次数阈值的情况下,确定应用启动异常;
57.时长模块,用于获取应用启动异常的时长,在时长达到预定时长阈值的情况下,确定应用启动异常。
58.可选地,上述应用异常处理装置还包括确定模块,用于在阻塞应用的主线程之前,通过以下方式至少之一,确定启动应用的主线程:主线程的名称,主线程的创建时间。
59.可选地,上述应用异常处理装置还包括控制单元,用于在确定应用启动异常之后,控制应用进入预定模式;基于启动异常的异常原因,对启动异常进行热修复包括:在预定模式下,基于启动异常的异常原因,对启动异常进行热修复。
60.可选地,上述应用异常处理装置还包括上报单元,用于在控制应用进入预定模式之后,在预定模式下,通过主线程对应用启动异常进行上报。
61.可选地,上述应用异常处理装置还包括计时单元,用于在控制应用进入预定模式之后,对应用进入预定模式进行计时,并在计时时长达到预定时长的情况下,结束应用的启动。
62.可选地,上述应用异常处理装置还包括恢复单元,用于在基于启动异常的异常原因,对启动异常进行热修复之后,在对启动异常进行热修复成功的情况下,恢复应用的主线程。
63.关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
64.根据本发明实施例的又一个方面,还提供了一种用于实施上述应用异常处理方法的电子设备,该电子设备可以是终端设备或服务器。本实施例以该电子设备为终端设备为例来说明。如图5所示,该电子设备包括存储器502和处理器504,该存储器502中存储有计算机程序,该处理器504被设置为通过计算机程序执行上述任一项方法实施例中的步骤。
65.可选地,在本实施例中,上述电子设备可以位于计算机网络的多个网络设备中的至少一个网络设备。
66.可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
67.s1,确定应用启动异常;
68.s2,阻塞应用的主线程;
69.s3,基于启动异常的异常原因,对启动异常进行热修复,其中,热修复为不关闭应用所进行的修复。
70.可选地,本领域普通技术人员可以理解,图5所示的结构仅为示意,电子设备也可以是智能手机(如android手机、ios手机等)、平板电脑、掌上电脑以及移动互联网设备(mobile internet devices,mid)、pad等终端设备。图5其并不对上述电子设备的结构造成限定。例如,电子设备还可包括比图5中所示更多或者更少的组件(如网络接口等),或者具有与图5所示不同的配置。
71.其中,存储器502可用于存储软件程序以及模块,如本发明实施例中的应用异常处理方法和装置对应的程序指令/模块,处理器504通过运行存储在存储器502内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的应用异常处理方法。存储器502可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器502可进一步包括相对于处理器504远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。其中,存储器502具体可以但不限于用于存储异常信息,热修复等信息。作为一种示例,如图5所示,上述存储器502中可以但不限于包括上述应用异常处理装置中的确定单元41,停止单元42和修复单元43。此外,还可以包括但不限于上述应用异常处理装置中的其他模块单元,本示例中不再赘述。
72.可选地,上述的传输装置506用于经由一个网络接收或者发送数据。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置506包括一个网络适配器(network interface controller,nic),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置506为射频(radio frequency,rf)模块,其用于通过无线方式与互联网进行通讯。
73.此外,上述电子设备还包括:显示器508,用于显示上述启动异常信息;和连接总线510,用于连接上述电子设备中的各个模块部件。
74.在其他实施例中,上述终端设备或者服务器可以是一个分布式系统中的一个节点,其中,该分布式系统可以为区块链系统,该区块链系统可以是由该多个节点通过网络通信的形式连接形成的分布式系统。其中,节点之间可以组成点对点(p2p,peer to peer)网络,任意形式的计算设备,比如服务器、终端等电子设备都可以通过加入该点对点网络而成
为该区块链系统中的一个节点。
75.根据本技术的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述应用异常处理方面的各种可选实现方式中提供的方法。其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
76.可选地,在本实施例中,上述计算机可读的存储介质可以被设置为存储用于执行以下步骤的计算机程序:
77.s1,确定应用启动异常;
78.s2,阻塞应用的主线程;
79.s3,基于启动异常的异常原因,对启动异常进行热修复,其中,热修复为不关闭应用所进行的修复。
80.可选地,在本实施例中,本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(read

only memory,rom)、随机存取器(random access memory,ram)、磁盘或光盘等。
81.上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
82.上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
83.在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
84.在本技术所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
85.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
86.本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本技术旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的
权利要求指出。
87.应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献