浏览器的异常处理方法和装置制造方法

文档序号:6633938阅读:581来源:国知局
浏览器的异常处理方法和装置制造方法
【专利摘要】本发明公开了一种浏览器的异常处理方法和装置。其中,该方法包括:在浏览器发生异常的情况下,调用异常过滤注册函数,异常过滤注册函数用于检测浏览器的异常状态的功能模块;异常过滤注册函数接收浏览器发生异常时产生的异常信息;异常过滤注册函数将浏览器产生的异常信息发送至常驻进程;常驻进程根据异常信息调用对应的异常处理函数,其中,异常处理函数用于修复发送异常的浏览器。本发明解决了现有技术针对浏览器的异常的处理方法,无法及时有效的处理浏览器异常的技术问题。
【专利说明】浏览器的异常处理方法和装置

【技术领域】
[0001] 本发明涉及计算机互联网领域,具体而言,涉及一种浏览器的异常处理方法和装 置。

【背景技术】
[0002] 随着计算机互联网技术的发展,计算机网络已经成为了目前人们日常生活和工作 不可或缺的一部分。而浏览器正是用户用于查询信息的一个主要渠道,目前市面上提供了 大量种类的浏览器,例如,最受用户欢迎的微软公司Windows操作系统自带的IE浏览器。
[0003] 随着用户对浏览器功能需求的增加,以及计算机研发技术的发展,可以根据需求 研发越来越多的浏览器插件,并将浏览器插件注入到浏览器中,对用户使用浏览器来浏览 网页提供了极大的便利,同时这种方案也存在一定的应用风险,例如,以Windows操作系统 为例,由于Windows操作系统本身的原因,在浏览器插件运行在浏览器进程内的过程中,一 旦有任何一个插件发生错误,就有极大的可能导致用户浏览器发送异常崩溃,严重时不能 正常使用。
[0004] 下面就以Windows操作系统提供的IE浏览器为例,对浏览器的异常处理过程进行 详细说明:IE浏览器在自身功能模块或者其中运行的插件因内存访问或读写错误导致崩 溃时,对应的IE浏览器进程也会发生崩溃,从而导致用户无法正常浏览网页。针对上述浏 览器出现异常的情况下,系统会调用默认的异常处理方法,弹出Windows错误报告对话框, 提示用户将错误反馈给微软公司,并上传dump。这种处理浏览器异常的方法至少包括如下 缺陷:微软公司处理问题的速度太慢,主要是由于IE崩溃原因太多,有的甚至不是微软公 司导致,以至于部分用户认为Windows错误报告对话框没实质性意义。而且用户即使反馈 错误,并重启浏览器,但大部分情况仍不能解决IE浏览器不能使用的问题,因此,电脑诊所 提出了智能检测IE浏览器崩溃的解决方案,即智能感知到用户IE浏览器发生崩溃,提示使 用电脑诊所已有的能力对用户IE浏览器进行修复。
[0005] 针对上述现有技术针对浏览器的异常的处理方法,无法及时有效的处理浏览器异 常的问题,目前尚未提出有效的解决方案。


【发明内容】

[0006] 本发明实施例提供了一种浏览器的异常处理方法和装置,以至少解决现有技术针 对浏览器的异常的处理方法,无法及时有效的处理浏览器异常的技术问题。
[0007] 根据本发明实施例的一个方面,提供了一种浏览器的异常处理方法,该方法包括: 在浏览器发生异常的情况下,调用异常过滤注册函数,异常过滤注册函数用于检测浏览器 的异常状态的功能模块;异常过滤注册函数接收浏览器发生异常时产生的异常信息;异常 过滤注册函数将浏览器产生的异常信息发送至常驻进程;常驻进程根据异常信息调用对应 的异常处理函数,其中,异常处理函数用于修复发送异常的浏览器。
[0008] 根据本发明实施例的另一方面,还提供了一种浏览器的异常处理装置,该装置包 括:第一调用单元,用于在浏览器发生异常的情况下,调用异常过滤注册函数,异常过滤注 册函数用于检测浏览器的异常状态的功能模块;接收单元,用于接收浏览器发生异常时产 生的异常信息;第一发送单元,用于将浏览器产生的异常信息发送至常驻进程;第二调用 单元,用于根据异常信息调用对应的异常处理函数,其中,异常处理函数用于修复发送异常 的浏览器。
[0009] 在本发明实施例中,采用在浏览器发生异常的情况下,调用异常过滤注册函数,异 常过滤注册函数用于检测浏览器的异常状态的功能模块;异常过滤注册函数接收浏览器发 生异常时产生的异常信息;异常过滤注册函数将浏览器产生的异常信息发送至常驻进程; 常驻进程根据异常信息调用对应的异常处理函数,其中,异常处理函数用于修复发送异常 的浏览器的方式,通过提供一个用于检测浏览器的异常状态的异常过滤注册函数,使得在 浏览器发生异常的情况下,调用异常过滤注册函数来检测到浏览器所发生的异常,并记录 该浏览器发生异常时产生的异常信息,由于异常过滤注册函数会将浏览器产生的异常信息 发送至常驻进程,此时可以利用常驻进程根据异常信息调用对应的异常处理函数,从而进 一步实现使用异常处理函数来发送异常的浏览器。上述过程通过利用异常过滤注册函数可 以及时捕获浏览器(例如IE浏览器)崩溃时所产生的异常信息,并通过调用对应的异常处 理函数来处理浏览器的异常,从而解决了现有技术针对浏览器的异常的处理方法,无法及 时有效的处理浏览器异常的技术问题,在及时获取浏览器异常的同时,可以为发生异常的 浏览器提供有效的处理方案。

【专利附图】

【附图说明】
[0010] 此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发 明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0011] 图1是本发明实施例的一种运行浏览器的异常处理方法的计算机终端的硬件结 构框图;
[0012] 图2是根据本发明实施例一的浏览器的异常处理方法的流程图;
[0013] 图3是根据本发明实施例一的浏览器的异常处理方法应用在IE浏览器中的详细 流程图;
[0014] 图4是根据本发明实施例二的浏览器的异常处理装置的结构示意图;
[0015] 图5是根据本发明实施例二的一种可选的浏览器的异常处理装置的结构示意图;
[0016] 图6是根据本发明实施例二的一种可选的浏览器的异常处理装置的结构示意图; [0017] 图7是根据本发明实施例二的一种可选的浏览器的异常处理装置的结构示意图; 以及
[0018] 图8是根据本发明实施例二的一种可选的浏览器的异常处理装置的结构示意图。

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

【权利要求】
1. 一种浏览器的异常处理方法,其特征在于,包括: 在浏览器发生异常的情况下,调用异常过滤注册函数,所述异常过滤注册函数用于检 测所述浏览器的异常状态的功能模块; 所述异常过滤注册函数接收所述浏览器发生异常时产生的异常信息; 所述异常过滤注册函数将所述浏览器产生的所述异常信息发送至常驻进程; 所述常驻进程根据所述异常信息调用对应的异常处理函数,其中,所述异常处理函数 用于修复发送异常的浏览器。
2. 根据权利要求1所述的方法,其特征在于,在调用异常过滤注册函数之前,所述方法 还包括: 将所述异常过滤注册函数预先注册至所述浏览器的主函数,使得在运行所述主函数 时,将所述异常过滤注册函数的注册信息赋值给注册模块; 在所述浏览器发生异常的情况下,所述浏览器检测所述注册模块的赋值是否为空,其 中, 在所述注册模块的赋值不为空的情况下,读取所述注册模块所赋值的所述注册信息, 其中,所述注册信息用于实现调用对应的所述异常过滤注册函数。
3. 根据权利要求2所述的方法,其特征在于,所述浏览器通过调试器来检测所述注册 模块的赋值是否为空,其中,在所述注册模块的赋值为空的情况下,所述调试器调用所述浏 览器自带的异常处理程序。
4. 根据权利要求2或3所述的方法,其特征在于,所述注册信息至少包括:所述异常过 滤注册函数的访问地址,其中,在读取所述注册模块所赋值的所述注册信息之后,所述方法 还包括: 提取所述注册信息中记录的所述异常过滤注册函数的访问地址,并按照所述异常过滤 注册函数的访问地址访问所述异常过滤注册函数; 将所述浏览器发生异常时产生的异常信息发送至所述接收异常过滤注册函数。
5. 根据权利要求1所述的方法,其特征在于,所述异常信息包括如下任意一个或多个 信息:所述异常的名称、类型、异常来源和属性,其中,所述常驻进程根据所述异常信息调用 对应的异常处理函数的步骤包括: 在所述异常信息为所述浏览器的插件发生异常导致所述浏览器发生异常的情况下,调 用的所述异常处理函数将对所述发生异常的插件采用以下至少一种处理方式:删除处理、 禁用处理、发送错误报告处理、告警处理; 在所述异常信息为所述浏览器本身的模块被恶意修改导致所述浏览器发生异常的情 况下,调用的所述异常处理函数将对所述被恶意修改的模块采用以下至少一种处理方式: 恢复处理、重写处理; 在所述异常信息为用户对所述浏览器的误操作导致所述浏览器发生异常的情况下,调 用的所述异常处理函数将对所述发生误操作的浏览器采用以下至少一种处理方式:恢复处 理、发送错误报告处理、告警处理。
6. 根据权利要求1所述的方法,其特征在于,在浏览器发生异常之后,所述方法还包 括: 弹出提示信息,提示用户是否触发调用所述异常过滤注册函数,其中,在接收到触发调 用所述异常过滤注册函数的触发指令的情况下,进入调用所述异常过滤注册函数的步骤, 否则,调用所述浏览器自带的异常处理程序来处理所述浏览器的所述异常信息。
7. -种浏览器的异常处理装置,其特征在于,包括: 第一调用单元,用于在浏览器发生异常的情况下,调用异常过滤注册函数,所述异常过 滤注册函数用于检测所述浏览器的异常状态的功能模块; 接收单元,用于接收所述浏览器发生异常时产生的异常信息; 第一发送单元,用于将所述浏览器产生的所述异常信息发送至常驻进程; 第二调用单元,用于根据所述异常信息调用对应的异常处理函数,其中,所述异常处理 函数用于修复发送异常的浏览器。
8. 根据权利要求7所述的装置,其特征在于,所述装置还包括: 注册单元,用于将所述异常过滤注册函数预先注册至所述浏览器的主函数,使得在运 行所述主函数时,将所述异常过滤注册函数的注册信息赋值给注册模块; 检测单元,用于在所述浏览器发生异常的情况下,所述浏览器检测所述注册模块的赋 值是否为空; 读取单元,用于在所述注册模块的赋值不为空的情况下,读取所述注册模块所赋值的 所述注册信息,其中,所述注册信息用于实现调用对应的所述异常过滤注册函数。
9. 根据权利要求8所述的装置,其特征在于,所述浏览器通过调试器来检测所述注册 模块的赋值是否为空,其中,在所述注册模块的赋值为空的情况下,所述调试器调用所述浏 览器自带的异常处理程序。
10. 根据权利要求8或9所述的装置,其特征在于,所述注册信息至少包括:所述异常 过滤注册函数的访问地址,所述装置还包括: 提取单元,用于提取所述注册信息中记录的所述异常过滤注册函数的访问地址,并按 照所述异常过滤注册函数的访问地址访问所述异常过滤注册函数; 第二发送单元,用于将所述浏览器发生异常时产生的异常信息发送至所述接收异常过 滤注册函数。
11. 根据权利要求7所述的装置,其特征在于,所述异常信息包括如下任意一个或多个 信息:所述异常的名称、类型、异常来源和属性,其中,所述第二调用单元还包括: 第一处理模块,用于在所述异常信息为所述浏览器的插件发生异常导致所述浏览器发 生异常的情况下,调用的所述异常处理函数将对所述发生异常的插件采用以下至少一种处 理方式:删除处理、禁用处理、发送错误报告处理、告警处理; 第二处理模块,用于在所述异常信息为所述浏览器本身的模块被恶意修改导致所述浏 览器发生异常的情况下,调用的所述异常处理函数将对所述被恶意修改的模块采用以下至 少一种处理方式:恢复处理、重写处理; 第三处理模块,用于在所述异常信息为用户对所述浏览器的误操作导致所述浏览器发 生异常的情况下,调用的所述异常处理函数将对所述发生误操作的浏览器采用以下至少一 种处理方式:恢复处理、发送错误报告处理、告警处理。
12. 根据权利要求7所述的装置,其特征在于,在浏览器发生异常之后,所述装置还包 括: 提示单元,用于弹出提示信息,提示用户是否触发调用所述异常过滤注册函数,其中, 在接收到触发调用所述异常过滤注册函数的触发指令的情况下,进入调用所述异常过滤注 册函数的步骤,否则,调用所述浏览器自带的异常处理程序来处理所述浏览器的所述异常 信息。
【文档编号】G06F11/07GK104361076SQ201410638086
【公开日】2015年2月18日 申请日期:2014年11月12日 优先权日:2014年11月12日
【发明者】张时伟 申请人:腾讯科技(成都)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1