书签 分享 收藏 举报 版权申诉 / 21

浏览器的异常处理方法和装置.pdf

  • 上传人:62****3
  • 文档编号:1635741
  • 上传时间:2018-06-30
  • 格式:PDF
  • 页数:21
  • 大小:1.76MB
  • 摘要
    申请专利号:

    CN201410638086.0

    申请日:

    2014.11.12

    公开号:

    CN104361076A

    公开日:

    2015.02.18

    当前法律状态:

    授权

    有效性:

    有权

    法律详情:

    授权|||实质审查的生效IPC(主分类):G06F 17/30申请日:20141112|||公开

    IPC分类号:

    G06F17/30; G06F11/07

    主分类号:

    G06F17/30

    申请人:

    腾讯科技(成都)有限公司

    发明人:

    张时伟

    地址:

    610041四川省成都市成都高新区拓东新街81号天府软件园二期C区4号楼

    优先权:

    专利代理机构:

    北京康信知识产权代理有限责任公司11240

    代理人:

    吴贵明; 张永明

    PDF完整版下载: PDF下载
    内容摘要

    本发明公开了一种浏览器的异常处理方法和装置。其中,该方法包括:在浏览器发生异常的情况下,调用异常过滤注册函数,异常过滤注册函数用于检测浏览器的异常状态的功能模块;异常过滤注册函数接收浏览器发生异常时产生的异常信息;异常过滤注册函数将浏览器产生的异常信息发送至常驻进程;常驻进程根据异常信息调用对应的异常处理函数,其中,异常处理函数用于修复发送异常的浏览器。本发明解决了现有技术针对浏览器的异常的处理方法,无法及时有效的处理浏览器异常的技术问题。

    权利要求书

    权利要求书
    1.  一种浏览器的异常处理方法,其特征在于,包括:
    在浏览器发生异常的情况下,调用异常过滤注册函数,所述异常过滤注册函数用于检测所述浏览器的异常状态的功能模块;
    所述异常过滤注册函数接收所述浏览器发生异常时产生的异常信息;
    所述异常过滤注册函数将所述浏览器产生的所述异常信息发送至常驻进程;
    所述常驻进程根据所述异常信息调用对应的异常处理函数,其中,所述异常处理函数用于修复发送异常的浏览器。

    2.  根据权利要求1所述的方法,其特征在于,在调用异常过滤注册函数之前,所述方法还包括:
    将所述异常过滤注册函数预先注册至所述浏览器的主函数,使得在运行所述主函数时,将所述异常过滤注册函数的注册信息赋值给注册模块;
    在所述浏览器发生异常的情况下,所述浏览器检测所述注册模块的赋值是否为空,其中,
    在所述注册模块的赋值不为空的情况下,读取所述注册模块所赋值的所述注册信息,其中,所述注册信息用于实现调用对应的所述异常过滤注册函数。

    3.  根据权利要求2所述的方法,其特征在于,所述浏览器通过调试器来检测所述注册模块的赋值是否为空,其中,在所述注册模块的赋值为空的情况下,所述调试器调用所述浏览器自带的异常处理程序。

    4.  根据权利要求2或3所述的方法,其特征在于,所述注册信息至少包 括:所述异常过滤注册函数的访问地址,其中,在读取所述注册模块所赋值的所述注册信息之后,所述方法还包括:
    提取所述注册信息中记录的所述异常过滤注册函数的访问地址,并按照所述异常过滤注册函数的访问地址访问所述异常过滤注册函数;
    将所述浏览器发生异常时产生的异常信息发送至所述接收异常过滤注册函数。

    5.  根据权利要求1所述的方法,其特征在于,所述异常信息包括如下任意一个或多个信息:所述异常的名称、类型、异常来源和属性,其中,所述常驻进程根据所述异常信息调用对应的异常处理函数的步骤包括:
    在所述异常信息为所述浏览器的插件发生异常导致所述浏览器发生异常的情况下,调用的所述异常处理函数将对所述发生异常的插件采用以下至少一种处理方式:删除处理、禁用处理、发送错误报告处理、告警处理;
    在所述异常信息为所述浏览器本身的模块被恶意修改导致所述浏览器发生异常的情况下,调用的所述异常处理函数将对所述被恶意修改的模块采用以下至少一种处理方式:恢复处理、重写处理;
    在所述异常信息为用户对所述浏览器的误操作导致所述浏览器发生异常的情况下,调用的所述异常处理函数将对所述发生误操作的浏览器采用以下至少一种处理方式:恢复处理、发送错误报告处理、告警处理。

    6.  根据权利要求1所述的方法,其特征在于,在浏览器发生异常之后,所述方法还包括:
    弹出提示信息,提示用户是否触发调用所述异常过滤注册函数,其中, 在接收到触发调用所述异常过滤注册函数的触发指令的情况下,进入调用所述异常过滤注册函数的步骤,否则,调用所述浏览器自带的异常处理程序来处理所述浏览器的所述异常信息。

    7.  一种浏览器的异常处理装置,其特征在于,包括:
    第一调用单元,用于在浏览器发生异常的情况下,调用异常过滤注册函数,所述异常过滤注册函数用于检测所述浏览器的异常状态的功能模块;
    接收单元,用于接收所述浏览器发生异常时产生的异常信息;
    第一发送单元,用于将所述浏览器产生的所述异常信息发送至常驻进程;
    第二调用单元,用于根据所述异常信息调用对应的异常处理函数,其中,所述异常处理函数用于修复发送异常的浏览器。

    8.  根据权利要求7所述的装置,其特征在于,所述装置还包括:
    注册单元,用于将所述异常过滤注册函数预先注册至所述浏览器的主函数,使得在运行所述主函数时,将所述异常过滤注册函数的注册信息赋值给注册模块;
    检测单元,用于在所述浏览器发生异常的情况下,所述浏览器检测所述注册模块的赋值是否为空;
    读取单元,用于在所述注册模块的赋值不为空的情况下,读取所述注册模块所赋值的所述注册信息,其中,所述注册信息用于实现调用对应的所述异常过滤注册函数。

    9.  根据权利要求8所述的装置,其特征在于,所述浏览器通过调试器来检测所述注册模块的赋值是否为空,其中,在所述注册模块的赋值为 空的情况下,所述调试器调用所述浏览器自带的异常处理程序。

    10.  根据权利要求8或9所述的装置,其特征在于,所述注册信息至少包括:所述异常过滤注册函数的访问地址,所述装置还包括:
    提取单元,用于提取所述注册信息中记录的所述异常过滤注册函数的访问地址,并按照所述异常过滤注册函数的访问地址访问所述异常过滤注册函数;
    第二发送单元,用于将所述浏览器发生异常时产生的异常信息发送至所述接收异常过滤注册函数。

    11.  根据权利要求7所述的装置,其特征在于,所述异常信息包括如下任意一个或多个信息:所述异常的名称、类型、异常来源和属性,其中,所述第二调用单元还包括:
    第一处理模块,用于在所述异常信息为所述浏览器的插件发生异常导致所述浏览器发生异常的情况下,调用的所述异常处理函数将对所述发生异常的插件采用以下至少一种处理方式:删除处理、禁用处理、发送错误报告处理、告警处理;
    第二处理模块,用于在所述异常信息为所述浏览器本身的模块被恶意修改导致所述浏览器发生异常的情况下,调用的所述异常处理函数将对所述被恶意修改的模块采用以下至少一种处理方式:恢复处理、重写处理;
    第三处理模块,用于在所述异常信息为用户对所述浏览器的误操作导致所述浏览器发生异常的情况下,调用的所述异常处理函数将对所述发生误操作的浏览器采用以下至少一种处理方式:恢复处理、发送错误报告处理、告警处理。

    12.  根据权利要求7所述的装置,其特征在于,在浏览器发生异常之后,所述装置还包括:
    提示单元,用于弹出提示信息,提示用户是否触发调用所述异常过滤注册函数,其中,在接收到触发调用所述异常过滤注册函数的触发指令的情况下,进入调用所述异常过滤注册函数的步骤,否则,调用所述浏览器自带的异常处理程序来处理所述浏览器的所述异常信息。

    说明书

    说明书浏览器的异常处理方法和装置
    技术领域
    本发明涉及计算机互联网领域,具体而言,涉及一种浏览器的异常处理方法和装置。
    背景技术
    随着计算机互联网技术的发展,计算机网络已经成为了目前人们日常生活和工作不可或缺的一部分。而浏览器正是用户用于查询信息的一个主要渠道,目前市面上提供了大量种类的浏览器,例如,最受用户欢迎的微软公司Windows操作系统自带的IE浏览器。
    随着用户对浏览器功能需求的增加,以及计算机研发技术的发展,可以根据需求研发越来越多的浏览器插件,并将浏览器插件注入到浏览器中,对用户使用浏览器来浏览网页提供了极大的便利,同时这种方案也存在一定的应用风险,例如,以Windows操作系统为例,由于Windows操作系统本身的原因,在浏览器插件运行在浏览器进程内的过程中,一旦有任何一个插件发生错误,就有极大的可能导致用户浏览器发送异常崩溃,严重时不能正常使用。
    下面就以Windows操作系统提供的IE浏览器为例,对浏览器的异常处理过程进行详细说明:IE浏览器在自身功能模块或者其中运行的插件因内存访问或读写错误导致崩溃时,对应的IE浏览器进程也会发生崩溃,从而导致用户无法正常浏览网页。针对上述浏览器出现异常的情况下,系统会调用默认的异常处理方法,弹出Windows错误报告对话框,提示用户将错误反馈给微软公司,并上传dump。这种处理浏览器异常的方法至少包括如下缺陷:微软公司处理问题的速度太慢,主要是由于IE崩溃原因太多,有的甚至不是微软公司导致,以至于部分用户认为Windows错 误报告对话框没实质性意义。而且用户即使反馈错误,并重启浏览器,但大部分情况仍不能解决IE浏览器不能使用的问题,因此,电脑诊所提出了智能检测IE浏览器崩溃的解决方案,即智能感知到用户IE浏览器发生崩溃,提示使用电脑诊所已有的能力对用户IE浏览器进行修复。
    针对上述现有技术针对浏览器的异常的处理方法,无法及时有效的处理浏览器异常的问题,目前尚未提出有效的解决方案。
    发明内容
    本发明实施例提供了一种浏览器的异常处理方法和装置,以至少解决现有技术针对浏览器的异常的处理方法,无法及时有效的处理浏览器异常的技术问题。
    根据本发明实施例的一个方面,提供了一种浏览器的异常处理方法,该方法包括:在浏览器发生异常的情况下,调用异常过滤注册函数,异常过滤注册函数用于检测浏览器的异常状态的功能模块;异常过滤注册函数接收浏览器发生异常时产生的异常信息;异常过滤注册函数将浏览器产生的异常信息发送至常驻进程;常驻进程根据异常信息调用对应的异常处理函数,其中,异常处理函数用于修复发送异常的浏览器。
    根据本发明实施例的另一方面,还提供了一种浏览器的异常处理装置,该装置包括:第一调用单元,用于在浏览器发生异常的情况下,调用异常过滤注册函数,异常过滤注册函数用于检测浏览器的异常状态的功能模块;接收单元,用于接收浏览器发生异常时产生的异常信息;第一发送单元,用于将浏览器产生的异常信息发送至常驻进程;第二调用单元,用于根据异常信息调用对应的异常处理函数,其中,异常处理函数用于修复发送异常的浏览器。
    在本发明实施例中,采用在浏览器发生异常的情况下,调用异常过滤注册函数,异常过滤注册函数用于检测浏览器的异常状态的功能模块;异常过滤注册函数接收浏览器发生异常时产生的异常信息;异常过滤注册函 数将浏览器产生的异常信息发送至常驻进程;常驻进程根据异常信息调用对应的异常处理函数,其中,异常处理函数用于修复发送异常的浏览器的方式,通过提供一个用于检测浏览器的异常状态的异常过滤注册函数,使得在浏览器发生异常的情况下,调用异常过滤注册函数来检测到浏览器所发生的异常,并记录该浏览器发生异常时产生的异常信息,由于异常过滤注册函数会将浏览器产生的异常信息发送至常驻进程,此时可以利用常驻进程根据异常信息调用对应的异常处理函数,从而进一步实现使用异常处理函数来发送异常的浏览器。上述过程通过利用异常过滤注册函数可以及时捕获浏览器(例如IE浏览器)崩溃时所产生的异常信息,并通过调用对应的异常处理函数来处理浏览器的异常,从而解决了现有技术针对浏览器的异常的处理方法,无法及时有效的处理浏览器异常的技术问题,在及时获取浏览器异常的同时,可以为发生异常的浏览器提供有效的处理方案。
    附图说明
    此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
    图1是本发明实施例的一种运行浏览器的异常处理方法的计算机终端的硬件结构框图;
    图2是根据本发明实施例一的浏览器的异常处理方法的流程图;
    图3是根据本发明实施例一的浏览器的异常处理方法应用在IE浏览器中的详细流程图;
    图4是根据本发明实施例二的浏览器的异常处理装置的结构示意图;
    图5是根据本发明实施例二的一种可选的浏览器的异常处理装置的结构示意图;
    图6是根据本发明实施例二的一种可选的浏览器的异常处理装置的结 构示意图;
    图7是根据本发明实施例二的一种可选的浏览器的异常处理装置的结构示意图;以及
    图8是根据本发明实施例二的一种可选的浏览器的异常处理装置的结构示意图。
    具体实施方式
    为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
    需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
    下面就本申请涉及到的部分名词解释如下:
    结构化异常处理框(structured exception handling frame,SHE代码框):Windows操作系统提供的对异常或错误的处理机制,用于确保调用和执行一个代码块,对应具体的功能实现处理程序。
    实施例1
    根据本发明实施例,提供了一种浏览器的异常处理方法的方法实施例, 需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
    本申请实施例一所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在计算机终端上为例,图1是本发明实施例的一种运行浏览器的异常处理方法的计算机终端的硬件结构框图。如图1所示,计算机终端10可以包括一个或多个(图中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输装置106。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
    存储器104可用于存储应用软件的软件程序以及模块,如本发明实施例中的浏览器的异常处理方法所对应的程序指令/模块,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的浏览器的异常处理方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
    传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
    在上述运行环境下,本申请提供了如图2所示的浏览器的异常处理方法。图2是根据本发明实施例一的浏览器的异常处理方法的流程图。
    如图2所示,该浏览器的异常处理方法可以包括如下实现步骤:
    步骤S20,在浏览器发生异常的情况下,调用异常过滤注册函数,异常过滤注册函数用于检测浏览器的异常状态的功能模块。
    本申请上述步骤S20中的浏览器不限于Windows提供的IE浏览器、腾讯浏览器、火狐浏览器等为用户提供浏览网页功能的产品。用户可以通过浏览器提供的地址栏输出访问地址来获取目标访问网站,并在浏览器中显示的目标访问网站进行操作,例如,登录社交应用网站、查看新闻、观看视频等。
    此处还需要说明的是,上述步骤S20中的异常过滤注册函数可以是预先注册至浏览器的主函数中的功能模块,一种可选实施例中,在浏览器发生异常之后,浏览器会调用异常过滤注册函数,并告知该异常过滤注册函数浏览器发生了异常;另外一种可选实施例中,异常过滤注册函数可以实时或者定时监测浏览器,在浏览器发生异常之后,抓取到该浏览器发生了异常。
    例如,以Windows提供的IE浏览器为例,当调用异常过滤注册函数成功注册至浏览器的主函数之后,在启动浏览器,即开始运行主函数之后,系统将该可以使用异常过滤注册函数监测浏览器,具体的,在Windows提供的IE浏览器运行的过程中,如果一个插件(例如google的导航插件)发生异常而崩溃的情况下,会导致浏览器也发生异常,此时,系统可以调用异常过滤注册函数来表示监测到IE浏览器发生了异常。
    步骤S22,异常过滤注册函数接收浏览器发生异常时产生的异常信息。
    本申请上述步骤S22中的异常信息可以包含浏览器发生异常时的通知信息,还可以包括当前异常的如下任意一个或多个信息:异常的名称、类型、异常来源和属性,其中,异常的来源用于表征导致当前浏览器发生 异常的来源,例如,异常来源可以是安装在浏览器中的插件发生的异常,也可以是用户异常操作发生的异常、也可以是浏览器本身模块的运行发生异常。
    步骤S24,异常过滤注册函数将浏览器产生的异常信息发送至常驻进程。
    本申请上述步骤S24中的常驻进程用于读取当前获取到的浏览器异常以及异常信息的参数,并利用参数确定调用的目标处理函数。
    步骤S26,常驻进程根据异常信息调用对应的异常处理函数,其中,异常处理函数用于修复发送异常的浏览器。
    本申请上述步骤S26中的异常处理函数可以是由上述步骤S24中的常驻进程所确定的目标处理函数,该异常处理函数可以通过第三方软件来提供,并实现根据异常信息来修复当前浏览器异常的功能模块,该第三方软件可以是腾讯提供的电脑管家。
    仍旧以Windows提供的IE浏览器为例,在异常信息至少包括如下任意一个或多个信息:异常的名称、类型、异常来源和属性的情况下,上述步骤S26实现的常驻进程根据异常信息调用对应的异常处理函数的步骤可以至少包括如下任意一个可选的方案:
    方案一:在异常信息为浏览器的插件发生异常导致浏览器发生异常的情况下,调用的异常处理函数将对发生异常的插件采用以下至少一种处理方式:删除处理、禁用处理、发送错误报告处理、告警处理。
    例如,在Windows提供的IE浏览器运行的过程中,上述发生异常而崩溃的插件为google的导航插件,此时,异常处理函数可以禁用或者删除加载在该IE浏览器中的google导航插件,并发出错误报告提交信息,提示用户当前浏览器发生异常的原因。
    方案二:在异常信息为浏览器本身的模块被恶意修改导致浏览器发生异常的情况下,调用的异常处理函数将对被恶意修改的模块采用以下至少 一种处理方式:恢复处理、重写处理;
    例如,在Windows提供的IE浏览器运行的过程中,由于第三方行为方(例如黑客攻击)对浏览器本身的模块进行了恶意修改,使得浏览器运行过程中产生了异常并崩溃,此时,异常处理函数对该恶意攻击进行安全处理,并将浏览器中被恶意修改后的模块进行恢复操作,使得被篡改的部件得以恢复,或者对浏览器进行重写使得浏览器的模块恢复正常。
    方案三:在异常信息为用户对浏览器的误操作导致浏览器发生异常的情况下,调用的异常处理函数将对发生误操作的浏览器采用以下至少一种处理方式:恢复处理、发送错误报告处理、告警处理。
    例如,在Windows提供的IE浏览器运行的过程中,上述发生的误操作可以是用户打开或操作了非法网站,导致网站携带的病毒使得浏览器崩溃,此时,异常处理函数可以采用对当前打开或操作了非法网站进行行安全处理,并将浏览器中被恶意修改后的模块进行恢复操作,使得被篡改的部件得以恢复。
    由上可知,本申请上述实施例所提供的方案,通过提供一个用于检测浏览器的异常状态的异常过滤注册函数,使得在浏览器发生异常的情况下,调用异常过滤注册函数来检测到浏览器所发生的异常,并记录该浏览器发生异常时产生的异常信息,由于异常过滤注册函数会将浏览器产生的异常信息发送至常驻进程,此时可以利用常驻进程根据异常信息调用对应的异常处理函数,从而进一步实现使用异常处理函数来发送异常的浏览器。上述过程通过利用异常过滤注册函数可以及时捕获浏览器(例如IE浏览器)崩溃时所产生的异常信息,并通过调用对应的异常处理函数来处理浏览器的异常,从而解决了现有技术针对浏览器的异常的处理方法,无法及时有效的处理浏览器异常的技术问题,在及时获取浏览器异常的同时,可以为发生异常的浏览器提供有效的处理方案。
    此处需要说明的是,本申请实施例一提供的方案优选应用在Windows操作系统的IE浏览器上。为了能提前预判可执行程序是否会在启动或运 行时发生异常,下面就对Windows操作系统提供的针对浏览器异常的处理机制进行详细描述:
    以Windows操作系统所提供的平台上的C++程序为例,本申请上述实施例一中的异常过滤注册函数可以是指Windows操作系统中提供的函数SetUnhandledExceptionFilter,该函数SetUnhandledExceptionFilter用于检测处理浏览器产生的异常。
    此处需要说明的是,可以在主程序的进程初始化阶段调用这个函数,一旦调用,进程中任意线程(例如浏览器的线程)抛出未处理异常都会通过SetUnhandledExceptionFilter指定的异常过滤注册函数监测并执行后续异常处理。
    具体的,Windows操作系统认为系统中运行的每个线程都是从NTDLL.dll中的函数BaseThreadStart开始的:

    上述函数包含一个结构化异常处理框(structured exception handling  frame,SHE代码框):运行过程中首先进入try模块,然后在try模块中调用程序或线程入口点函数。由此,在任意一个线程抛出一个异常,并且在所有安装的异常过滤程序都返回EXCEPTION_CONTINUE_SEARCH的情况下,系统可以提供上述一个用于监测线程抛出的异常的特殊函数,该异常过滤注册函数UnhandleExceptionFilter将在检测到线程(IE浏览器的线程)发生异常的时候自动调用。
    此处还需要说明的是,本申请上述实施例中提供的异常过滤注册函数也可以是一种自定义的过滤函数,定义的过程中需要满足IE浏览器定义所使用的过滤函数模板,即定义异常过滤注册函数时,函数定义的内容可以不同,但所采用的格式需要与函数UnhandleExceptionFilter相同,例如:type void(*IE_DEFINE_FUNCTION)(int n)。
    本申请上述实施例一所提供的一种可选方案中,在执行步骤S20来实现调用异常过滤注册函数之前,还可以执行如下方案:
    步骤S201,将异常过滤注册函数预先注册至浏览器的主函数,使得在运行主函数时,将异常过滤注册函数的注册信息赋值给注册模块。
    仍旧以IE浏览器为例,在IE浏览器的主函数为int main()的情况下,可以预先将异常过滤注册函数注册至主函数中,其中,Main为主程序入口,可以等价为注入模块的入口。具体的,浏览器运行之后,可以将该异常过滤注册函数的注册信息赋值给注册模块,即在注册模块的入口处,注册当前IE浏览器定义的异常过滤注册函数,从而启动注册功能。
    此处需要说明的是,上述注册过程可以是将注册信息赋值给注册模块,注册信息可以包含需要调用的异常过滤注册函数的访问地址。
    步骤S203,在浏览器发生异常的情况下,浏览器检测注册模块的赋值是否为空,其中,在注册模块的赋值不为空的情况下,转入执行步骤S205,在注册模块的赋值为空的情况下,转入执行步骤S207。
    仍旧以IE浏览器为例,本申请上述步骤S203可以通过IE浏览器提 供的IE崩溃分发函数来检测当前浏览器的注册模块的赋值是否为空。从而实现在IE浏览器发生异常而崩溃时,IE浏览器就会检测是否有定义的异常过滤注册函数,如果有就调用。
    步骤S205,读取注册模块所赋值的注册信息,其中,注册信息用于实现调用对应的异常过滤注册函数。
    仍旧以IE浏览器为例,本申请上述步骤S205可以实现,在检测到IE浏览器已经注册了异常过滤注册函数,就可以通过读取注册模块中的注册信息来调用该函数,进一步的,将异常信息按照注册信息所确定的访问位置发送给对应的注册模块。
    步骤S207,调用浏览器自带的异常处理程序,优选地,本申请上述方案中,浏览器可以通过调试器来实现,在检测到注册模块的赋值为空的情况下,通过调试器来调用浏览器自带的异常处理程序。
    此处需要说明的是,上述浏览器自带的异常处理程序可以是指在主函数中没有注册异常过滤注册函数的情况下,如果浏览器出现异常时系统所调用的默认的异常处理方法。
    仍旧以IE浏览器为例,上述IE浏览器自带的异常处理程序实现的功能可以如下:弹出Windows错误报告对话框,提示用户将错误反馈给微软公司,并上传dump。
    由此可知,本申请上述步骤S201至步骤S207实现的方案,通过在I E浏览器运行前注入异常过滤注册函数,从而接管IE浏览器本身自带的异常处理机制,由此,在IE浏览器发生异常而崩溃的情况下,最先触发的是异常过滤注册函数,即电脑诊所(例如腾讯的电脑管家)注入模块的异常处理规则,优选地,此时还可以弹出TIPS提示用户使用电脑诊所(例如腾讯的电脑管家)进行修复,并将异常抛向上层。
    优选地,本申请上述各个可选的或优选的实施例中的注册信息可以至少包括:异常过滤注册函数的访问地址,其中,在执行步骤S205之后, 即读取注册模块所赋值的注册信息之后,本申请还可以提供如下可选的实施方案:
    步骤S2061,提取注册信息中记录的异常过滤注册函数的访问地址,并按照异常过滤注册函数的访问地址访问异常过滤注册函数。
    步骤S2063,将浏览器发生异常时产生的异常信息发送至接收异常过滤注册函数。
    仍旧以IE浏览器为例,本申请上述步骤S2061和步骤S2063实现的方案,通过获取注册信息中保存的异常过滤注册函数的访问地址,来成功将当前发生异常的IE浏览器的异常信息按照这个访问地址发送给对应的异常过滤注册函数。
    此处需要说明的是,上述异常信息可以包含当前IE浏览器发生异常的详细数据,从而便于系统精确定位异常的来源、种类等信息,进而精确调用合适的异常处理函数来及时、准确的处理当前IE浏览器的异常,从而修复IE浏览器。
    基于上述各个实施例,本申请还可以提供一种优选的实施方案,在步骤S20执行的过程中,在浏览器发生异常之后,在调用异常过滤注册函数之前,本申请还可以提供如下优选的实施方案:
    弹出提示信息,提示用户是否触发调用异常过滤注册函数,其中,在接收到触发调用异常过滤注册函数的触发指令的情况下,进入调用异常过滤注册函数的步骤,否则,调用浏览器自带的异常处理程序来处理浏览器的异常信息。
    仍旧以IE浏览器为例,本申请上述优选方案可以实现,在IE浏览器崩溃时,提示用户使用电脑诊所(例如腾讯的电脑管家),在用户点击确定按钮之后,IE浏览器接收到触发调用异常过滤注册函数的触发指令,可以实现通过调用异常过滤注册函数来实现使用异常处理函数对IE浏览器进行修复。此处需要说明的是,该优选方案中所采用的调用浏览器自带的 异常处理程序来处理浏览器的异常信息可以是指系统所调用的默认的异常处理方法,具体的,上述IE浏览器自带的异常处理程序实现的功能可以如下:弹出Windows错误报告对话框,提示用户将错误反馈给微软公司,并上传dump。
    上述方案可以实现智能感知用户使用的IE浏览器是否产生异常而崩溃,并提示用户进行修复,提高了用户体验。
    结合上述实施例一,以Windows操作系统中的IE浏览器为例,结合图3可知,本申请提供的一种可选的实施方案可以包括以下步骤:
    步骤A,在主程序中注入异常过滤注册函数。具体的,可以将Main提供的主程序入口作为注入模块入口,将自己定义的异常过滤注册函数注入至IE浏览器的主程序。
    步骤B,在IE浏览器发生异常而崩溃时,系统弹出TIPS提示用户是否使用电脑诊所(例如腾讯的电脑管家)对发生的IE浏览器进行修复。
    步骤C,在接收到用户触发调用异常过滤注册函数的触发指令的情况下,将异常抛向上层,IE浏览器通过通知调试器来检测是否有定义的异常过滤注册函数,其中,如果调试器检测到异常过滤注册函数,则进入步骤D,否则,转入步骤H。
    步骤D,如果调试器检测到异常过滤注册函数,则调用异常过滤注册函数,并允许资源进行写入操作并继续执行。
    步骤E,调试器会将IE浏览器发生异常时产生的异常信息发送给异常过滤注册函数,异常信息可以包括异常的名称、类型、异常来源和属性。
    步骤F,异常过滤注册函数将浏览器产生的异常信息发送至常驻进程。
    步骤G,常驻进程根据异常信息调用电脑管家软件中对应的异常处理函数,其中,异常处理函数用于修复发送异常的浏览器。
    步骤H,通过调试器来调用浏览器自带的异常处理程序。
    由此可知,本申请上述步骤A至步骤H提供的方案,可以实现在I E浏览器运行前注入异常过滤注册函数,从而接管IE浏览器本身自带的异常处理机制,由此,在IE浏览器发生异常而崩溃的情况下,最先触发的是异常过滤注册函数,即电脑诊所(例如腾讯的电脑管家)注入模块的异常处理规则,从而实现通过注入接管IE浏览器异常处理过程,及时感知并处理IE浏览器崩溃的方法来解决现有技术针对浏览器的异常的处理方法,无法及时有效的处理浏览器异常的技术问题,在及时获取浏览器异常的同时,可以为发生异常的浏览器提供有效的处理方案。
    需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
    通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
    实施例2
    根据本发明实施例,还提供了一种用于实施上述浏览器的异常处理方法的浏览器的异常处理装置的装置实施例。
    本申请上述实施例所提供的装置可以在计算机终端上运行。
    图4是根据本发明实施例二的浏览器的异常处理装置的结构示意图。
    如图4所示,该浏览器的异常处理装置可以包括:第一调用单元30、接收单元32、第一发送单元34、第二调用单元36。
    其中,第一调用单元30,用于在浏览器发生异常的情况下,调用异常过滤注册函数,异常过滤注册函数用于检测浏览器的异常状态的功能模块;接收单元32,用于接收浏览器发生异常时产生的异常信息;第一发送单元34,用于将浏览器产生的异常信息发送至常驻进程;第二调用单元36,用于根据异常信息调用对应的异常处理函数,其中,异常处理函数用于修复发送异常的浏览器。
    由上可知,本申请上述实施例所提供的方案,通过提供一个用于检测浏览器的异常状态的异常过滤注册函数,使得在浏览器发生异常的情况下,调用异常过滤注册函数来检测到浏览器所发生的异常,并记录该浏览器发生异常时产生的异常信息,由于异常过滤注册函数会将浏览器产生的异常信息发送至常驻进程,此时可以利用常驻进程根据异常信息调用对应的异常处理函数,从而进一步实现使用异常处理函数来发送异常的浏览器。上述过程通过利用异常过滤注册函数可以及时捕获浏览器(例如IE浏览器)崩溃时所产生的异常信息,并通过调用对应的异常处理函数来处理浏览器的异常,从而解决了现有技术针对浏览器的异常的处理方法,无法及时有效的处理浏览器异常的技术问题,在及时获取浏览器异常的同时,可以为发生异常的浏览器提供有效的处理方案。
    此处需要说明的是,上述第一调用单元30、接收单元32、第一发送单元34、第二调用单元36对应于实施例一中的步骤S20至步骤S26,四个单元与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例一提供的计算机终端10中,可以通过软件实现,也可以通过硬件实现。
    优选的,如图5所示,该浏览器的异常处理装置还可以包括:注册单元38、检测单元40、读取单元42。
    其中,注册单元38,用于将异常过滤注册函数预先注册至浏览器的主函数,使得在运行主函数时,将异常过滤注册函数的注册信息赋值给注册模块;检测单元40,用于在浏览器发生异常的情况下,浏览器检测注册模块的赋值是否为空;读取单元42,用于在注册模块的赋值不为空的情况下,读取注册模块所赋值的注册信息,其中,注册信息用于实现调用对应的异常过滤注册函数。
    此处需要说明的是,上述注册单元38、检测单元40、读取单元42对应于实施例一中的步骤S201至S205,三个单元与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例一提供的计算机终端10中,可以通过软件实现,也可以通过硬件实现。
    优选的,本申请上述方案的可选实施例中,上述浏览器可以通过调试器来检测注册模块的赋值是否为空,其中,在注册模块的赋值为空的情况下,调试器调用浏览器自带的异常处理程序。
    优选的,如图6所示,该浏览器异常处理装置还可以包括:提取单元44,第二发送单元46。
    其中,提取单元44,用于提取注册信息中记录的异常过滤注册函数的访问地址,并按照异常过滤注册函数的访问地址访问异常过滤注册函数;第二发送单元46,用于将浏览器发生异常时产生的异常信息发送至接收异常过滤注册函数。
    此处需要说明的是,上述提取单元44,第二发送单元46对应于实施例一中的步骤S2061至步骤S2063,上述两个单元与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例一提供的计算机终端10中,可以通过软件实现,也可以通过硬件实现。
    优选的,异常信息可以包括如下任意一个或多个信息:异常的名称、 类型、异常来源和属性,结合图7可知,上述第二调用单元36可以包括:第一处理模块361,第二处理模块362,第三处理模块363.
    其中,第一处理模块361,用于在异常信息为浏览器的插件发生异常导致浏览器发生异常的情况下,调用的异常处理函数将对发生异常的插件采用以下至少一种处理方式:删除处理、禁用处理、发送错误报告处理、告警处理;第二处理模块362,用于在异常信息为浏览器本身的模块被恶意修改导致浏览器发生异常的情况下,调用的异常处理函数将对被恶意修改的模块采用以下至少一种处理方式:恢复处理、重写处理;第三处理模块363,用于在异常信息为用户对浏览器的误操作导致浏览器发生异常的情况下,调用的异常处理函数将对发生误操作的浏览器采用以下至少一种处理方式:恢复处理、发送错误报告处理、告警处理。
    此处需要说明的是,上述第一处理模块361,第二处理模块362,第三处理模块363对应于实施例一中的步骤S26实现的常驻进程根据异常信息调用对应的异常处理函数的步骤可以至少包括如下任意一个可选的方案,上述模块与对应的可选方案所实现的示例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例一提供的计算机终端10中,可以通过软件实现,也可以通过硬件实现。
    优选的,结合图8可知,该浏览器的异常处理装置还可以包括:提示单元48。
    其中,提示单元48用于弹出提示信息,提示用户是否触发调用异常过滤注册函数,其中,在接收到触发调用异常过滤注册函数的触发指令的情况下,进入调用异常过滤注册函数的步骤,否则,调用浏览器自带的异常处理程序来处理浏览器的异常信息。
    此处需要说明的是,上述提示单元48对应于实施例一中的弹出提示信息的方案,该单元与对应的弹出提示信息的方案所实现的示例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块 作为装置的一部分可以运行在实施例一提供的计算机终端10中,可以通过软件实现,也可以通过硬件实现。
    由此可知,本申请上述步骤A至步骤H提供的方案,可以实现在I E浏览器运行前注入异常过滤注册函数,从而接管IE浏览器本身自带的异常处理机制,由此,在IE浏览器发生异常而崩溃的情况下,最先触发的是异常过滤注册函数,即电脑诊所(例如腾讯的电脑管家)注入模块的异常处理规则,从而实现通过注入接管IE浏览器异常处理过程,及时感知并处理IE浏览器崩溃的方法来解决现有技术针对浏览器的异常的处理方法,无法及时有效的处理浏览器异常的技术问题,在及时获取浏览器异常的同时,可以为发生异常的浏览器提供有效的处理方案。
    实施例3
    本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于保存上述实施例一的浏览器的异常处理方法所执行的程序代码。
    可选地,在本实施例中,上述存储介质可以位于计算机网络中计算机终端群中的任意一个服务器中。
    可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:
    S1,在浏览器发生异常的情况下,调用异常过滤注册函数,异常过滤注册函数用于检测浏览器的异常状态的功能模块。
    S3,异常过滤注册函数接收浏览器发生异常时产生的异常信息。
    S5,异常过滤注册函数将浏览器产生的异常信息发送至常驻进程。
    S7,常驻进程根据异常信息调用对应的异常处理函数,其中,异常处理函数用于修复发送异常的浏览器。
    可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:将 异常过滤注册函数预先注册至浏览器的主函数,使得在运行主函数时,将异常过滤注册函数的注册信息赋值给注册模块;在浏览器发生异常的情况下,浏览器检测注册模块的赋值是否为空,其中,在注册模块的赋值不为空的情况下,读取注册模块所赋值的注册信息,其中,注册信息用于实现调用对应的异常过滤注册函数。
    可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:浏览器通过调试器来检测注册模块的赋值是否为空,其中,在注册模块的赋值为空的情况下,调试器调用浏览器自带的异常处理程序
    可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:注册信息至少包括:异常过滤注册函数的访问地址,其中,在读取注册模块所赋值的注册信息之后,方法还包括:提取注册信息中记录的异常过滤注册函数的访问地址,并按照异常过滤注册函数的访问地址访问异常过滤注册函数;将浏览器发生异常时产生的异常信息发送至接收异常过滤注册函数。
    可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:异常信息包括如下任意一个或多个信息:异常的名称、类型、异常来源和属性,其中,常驻进程根据异常信息调用对应的异常处理函数的步骤包括:在异常信息为浏览器的插件发生异常导致浏览器发生异常的情况下,调用的异常处理函数将对发生异常的插件采用以下至少一种处理方式:删除处理、禁用处理、发送错误报告处理、告警处理;在异常信息为浏览器本身的模块被恶意修改导致浏览器发生异常的情况下,调用的异常处理函数将对被恶意修改的模块采用以下至少一种处理方式:恢复处理、重写处理;在异常信息为用户对浏览器的误操作导致浏览器发生异常的情况下,调用的异常处理函数将对发生误操作的浏览器采用以下至少一种处理方式:恢复处理、发送错误报告处理、告警处理。
    可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:在浏览器发生异常之后,方法还包括:弹出提示信息,提示用户是否触发调 用异常过滤注册函数,其中,在接收到触发调用异常过滤注册函数的触发指令的情况下,进入调用异常过滤注册函数的步骤,否则,调用浏览器自带的异常处理程序来处理浏览器的异常信息。
    可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
    可选地,本实施例中的具体示例可以参考上述实施例2和实施例4中所描述的示例,本实施例在此不再赘述。
    上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
    上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。
    在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
    在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
    作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
    另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
    以上仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
    本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(Random Access Memory,RAM)、磁盘或光盘等。

    关 键  词:
    浏览器 异常 处理 方法 装置
      专利查询网所有文档均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    0条评论

    还可以输入200字符

    暂无评论,赶快抢占沙发吧。

    关于本文
    本文标题:浏览器的异常处理方法和装置.pdf
    链接地址:https://www.zhuanlichaxun.net/p-1635741.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
    经营许可证编号:粤ICP备2021068784号-1