CN117033064A - 一种代码异常处理的方法及装置 - Google Patents
一种代码异常处理的方法及装置 Download PDFInfo
- Publication number
- CN117033064A CN117033064A CN202311306041.9A CN202311306041A CN117033064A CN 117033064 A CN117033064 A CN 117033064A CN 202311306041 A CN202311306041 A CN 202311306041A CN 117033064 A CN117033064 A CN 117033064A
- Authority
- CN
- China
- Prior art keywords
- code
- exception
- target
- exception handling
- byte
- 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
Links
- 238000012545 processing Methods 0.000 title claims abstract description 118
- 238000000034 method Methods 0.000 title claims abstract description 89
- 230000009191 jumping Effects 0.000 claims abstract description 21
- 230000004044 response Effects 0.000 claims abstract description 10
- 238000012544 monitoring process Methods 0.000 claims description 31
- 230000008569 process Effects 0.000 claims description 23
- 230000005856 abnormality Effects 0.000 claims description 16
- 238000004891 communication Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000000586 desensitisation Methods 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/079—Root cause analysis, i.e. error or fault diagnosis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0793—Remedial or corrective actions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Mathematical Physics (AREA)
- Devices For Executing Special Programs (AREA)
- Debugging And Monitoring (AREA)
Abstract
本说明书公开了一种代码异常处理的方法及装置。WebAssembly字节码中预设了至少一个异常处理区域,异常处理区域预设了自定义的用于处理异常的代码段。首先,虚拟机可以执行与应用代码对应的WebAssembly字节码。其次,响应于WebAssembly字节码中的任一目标WebAssembly字节码出现执行异常,确定目标WebAssembly字节码是否位于目标异常处理区域内。如果是,跳转到与目标异常处理区域对应的用于处理异常的代码段,对异常进行处理。本方法可以在异常处理区域内的WebAssembly字节码出现执行异常时,跳转到与目标异常处理区域对应的用于处理异常的代码段,对异常进行处理。
Description
技术领域
本说明书涉及计算机技术领域,尤其涉及一种代码异常处理的方法及装置。
背景技术
WebAssembly是一种能够将其他编程语言编译为浏览器可执行的二进制文件的技术。例如,为诸如C/C++等语言提供一个编译目标,以便它们可以在Web上运行。也就是说,WebAssembly并不是一门编程语言,而是一份字节码标准,需要用高级编程语言编译出字节码放到WebAssembly虚拟机中才能运行。
目前,在资源受限的智能卡或SE设备上执行WebAssembly字节码时,可能会出现异常,导致系统无法正常运行甚至崩溃。但是,由于现有的对WebAssembly字节码进行执行的方法中并没有对异常进行处理的方法,导致在执行WebAssembly字节码出现异常时,只能由虚拟机对异常进行处理。例如,中止执行WebAssembly字节码、记录异常信息并返回等。
因此,在执行WebAssembly字节码出现异常时,如何对异常进行处理,则是一个亟待解决的问题。
发明内容
本说明书提供一种代码异常处理的方法、装置、电子设备及机器可读存储介质,以在执行WebAssembly字节码出现异常时,对异常进行处理。
本说明书采用下述技术方案:
本说明书提供了一种代码异常处理的方法,所述方法应用于电子设备上搭载的用于运行与应用代码对应的WebAssembly字节码的虚拟机;在所述WebAssembly字节码中预设了至少一个异常处理区域,所述异常处理区域预设了自定义的用于处理异常的代码段,包括:
执行与所述应用代码对应的WebAssembly字节码;
响应于所述WebAssembly字节码中的任一目标WebAssembly字节码出现执行异常,确定所述目标WebAssembly字节码是否位于所述目标异常处理区域内;如果是,跳转到与所述目标异常处理区域对应的用于处理异常的代码段,对所述异常进行处理。
可选地,在执行与所述应用代码对应的WebAssembly字节码之前,所述方法还包括:
获取应用代码;
通过编译器,将所述应用代码转换为WebAssembly字节码,并对WebAssembly字节码中的用于调用代码段的字节码进行修改,修改为用于标识异常处理区域的起始位置的起始字节码以及用于标识异常处理区域的结束位置的结束字节码。
可选地,所述异常处理区域包括用于标识所述异常处理区域的起始位置的起始字节码以及用于标识所述异常处理区域的结束位置的结束字节码;
确定所述目标WebAssembly字节码是否位于所述目标异常处理区域内,包括:
在执行至所述WebAssembly字节码中的目标起始字节码时,开始对目标异常处理区域进行监控,直到执行至与所述目标结束字节码,结束对所述目标异常处理区域的监控;
确定所述目标WebAssembly字节码是否位于所述目标异常处理区域内的目标起始字节码与所述目标结束字节码之间的区域。
可选地,所述目标异常处理区域内嵌套了至少一个与具有调用关系的多个代码段对应的异常处理区域;
在执行至所述WebAssembly字节码中的目标起始字节码时,开始对目标异常处理区域进行监控,直到执行至与所述目标结束字节码,结束对所述目标代码监控区域的监控,包括:
在执行至所述WebAssembly字节码中的目标起始字节码时,开始对目标异常处理区域进行监控,按照所述多个代码段的调用顺序,为所述多个代码段中的各个与代码段对应的异常处理区域依次注册对应的用于处理异常的代码段;
在执行至与所述多个代码段对应的异常处理区域中的结束字节码时,按照所述多个代码段的调用顺序,为所述多个代码段中的各个与代码段对应的异常处理区域依次注销对应的用于处理异常的代码段,直到执行至与所述目标结束字节码,结束对所述目标异常处理区域的监控。
可选地,所述目标异常处理区域内包含至少一个异常处理子区域;
在执行至所述WebAssembly字节码中的目标起始字节码时,开始对目标异常处理区域进行监控,直到执行至与所述目标结束字节码,结束对所述目标代码监控区域的监控,包括:
在执行至所述WebAssembly字节码中的目标起始字节码时,开始对目标异常处理区域进行监控,并在执行至与所述至少一个异常处理子区域对应的起始字节码时,为所述至少一个异常处理子区域注册对应的用于处理异常的代码段;
在执行至与所述至少一个异常处理子区域对应的结束字节码时,为所述至少一个异常处理子区域注销对应的用于处理异常的代码段,直到执行至所述目标结束字节码,结束对所述目标异常处理区域的监控。
可选地,在执行至与所述多个代码段对应的异常处理区域中的结束字节码之前,所述方法还包括:
按照与多个异常处理区域对应的用于处理异常的代码段的注册顺序,将所述多个异常处理区域中的各个用于处理异常的代码段的代码段信息,依次存储到为与所述多个异常处理区域对应的用于处理异常的代码段注册的代码段数组中;
在执行至与所述多个异常处理区域对应的异常处理区域中的结束字节码之后,按照与多个异常处理区域对应的用于处理异常的代码段的注销顺序,将所述多个异常处理区域中的各个用于处理异常的代码段的代码段信息,从为与所述多个异常处理区域对应的用于处理异常的代码段注册的代码段数组中依次删除。
可选地,所述代码段信息包括:代码段对应的异常处理区域中的起始字节码、虚拟机栈帧信息;
确定所述目标WebAssembly字节码是否位于所述目标异常处理区域内,包括:
按照所述代码段数组中的各个代码段对应的异常处理区域中的起始字节码以及各异常处理区域所在代码段的大小,确定与各用于处理异常的代码段对应的异常处理区域;
从与各用于处理异常的代码段对应的异常处理区域中,确定所述目标WebAssembly字节码是否位于的目标异常处理区域内;
如果是,跳转到与所述目标异常处理区域对应的用于处理异常的代码段,对所述异常进行处理,包括:
如果是,基于与所述目标异常处理区域对应的用于处理异常的代码段信息中的虚拟机栈帧信息,恢复虚拟机栈帧,跳转到与所述目标异常处理区域对应的用于处理异常的代码段,对所述异常进行处理。
可选地,所述方法还包括:
如果否,通过所述虚拟机对所述异常进行处理。
可选地,所述方法还包括:
在基于所述用于处理异常的代码段对所述异常进行处理的过程中,确定是否出现其他异常,如果否,从位于所述目标结束字节码之后的首个WebAssembly字节码开始,以继续执行所述WebAssembly字节码;如果是,确定所述其他异常位于的异常处理区域,跳转到与所述其他异常位于的异常处理区域对应的用于处理异常的代码段,对所述其他异常进行处理。
本说明书提供了一种代码异常处理的装置,所述装置应用于电子设备上搭载的用于运行与应用代码对应的WebAssembly字节码的虚拟机;所述WebAssembly字节码中预设了至少一个异常处理区域,所述异常处理区域预设了自定义的用于处理异常的代码段,包括:
执行模块,用于执行与所述应用代码对应的WebAssembly字节码;
处理模块,用于响应于所述WebAssembly字节码中的任一目标WebAssembly字节码出现执行异常,确定所述目标WebAssembly字节码是否位于所述目标异常处理区域内;如果是,跳转到与所述目标异常处理区域对应的用于处理异常的代码段,对所述异常进行处理。
本说明书提供了一种电子设备,包括通信接口、处理器、存储器和总线,所述通信接口、所述处理器和所述存储器之间通过总线相互连接;
所述存储器中存储机器可读指令,所述处理器通过调用所述机器可读指令,执行上述代码异常处理的方法。
本说明书提供了一种机器可读存储介质,所述机器可读存储介质存储有机器可读指令,所述机器可读指令在被处理器调用和执行时,实现上述代码异常处理的方法。
本说明书采用的上述至少一个技术方案能够达到以下有益效果:
在本说明书提供的代码异常处理的方法中,WebAssembly字节码中预设了至少一个异常处理区域,异常处理区域预设了自定义的用于处理异常的代码段。虚拟机可以执行与应用代码对应的WebAssembly字节码,响应于WebAssembly字节码中的任一目标WebAssembly字节码出现执行异常,确定目标WebAssembly字节码是否位于目标异常处理区域内。如果是,跳转到与目标异常处理区域对应的用于处理异常的代码段,对异常进行处理。本方法可以在异常处理区域内的WebAssembly字节码出现执行异常时,跳转到与目标异常处理区域对应的用于处理异常的代码段,对异常进行处理。
附图说明
此处所说明的附图用来提供对本说明书的进一步理解,构成本说明书的一部分,本说明书的示意性实施例及其说明用于解释本说明书,并不构成对本说明书的不当限定。在附图中:
图1是一示例性的实施例示出的一种代码异常处理的方法的流程图;
图2是一示例性的实施例示出的一种用于处理异常的代码段的注册及注销过程的示意图;
图3是一示例性的实施例示出的另一种用于处理异常的代码段的注册及注销过程的示意图;
图4是一示例性的实施例示出的一种执行WebAssembly字节码的过程的示意图;
图5是一示例性的实施例示出的一种代码异常处理的装置所在电子设备的结构图;
图6是一示例性的实施例示出的一种代码异常处理的装置的框图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
为了使本技术领域的人员更好地理解本说明书实施例中的技术方案,下面先对本说明书实施例涉及的相关技术,进行简要说明。
WebAssembly是一种能够将其他编程语言编译为浏览器可执行的二进制文件的技术。例如,为诸如C/C++等语言提供一个编译目标,以便它们可以在Web上运行。也就是说,WebAssembly并不是一门编程语言,而是一份字节码标准,需要用高级编程语言编译出字节码放到WebAssembly虚拟机中才能运行。
资源受限设备(Resource Constrained Device)通常是指电量供应有限,计算能力有限,以及存储容量有限的电子设备。例如,智能卡(Smart Card)和安全单元(SecureElement)等。
虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。
虚拟机栈(VirtualMachine Stack)可以用来储存栈帧(Stack Frame),栈帧是用于支持虚拟机用来支持函数调用和返回的一种数据结构。栈帧存储了参数、局部变量、中间运行结果以及返回值和调用方法等信息。
其中,每一个函数从调用开始至执行完成的过程,都对应着一个栈帧在虚拟机栈里面从入栈到出栈的过程。例如,虚拟机在调用函数时,会创建一个栈帧并压入帧栈。在执行函数完成时,会销毁与该函数对应的栈帧。需要说明的是,只有位于虚拟机栈的栈顶的栈帧才是有效的,称为当前栈帧(CurrentStack Frame)。
在实际应用中,对WebAssembly字节码进行执行的方法中没有对异常进行处理的方法,在执行WebAssembly字节码出现异常时,只能由虚拟机对异常进行处理。
基于此,本说明书提出了一种在WebAssembly字节码中预设了至少一个异常处理区域,并为各异常处理区域预设了自定义的用于处理异常的代码段,在异常处理区域内的WebAssembly字节码出现执行异常时,调用与异常处理区域对应的用于处理异常的代码段,对异常进行处理的技术方案。
以下结合附图,详细说明本说明书各实施例提供的技术方案。
图1是一示例性的实施例示出的一种代码异常处理的方法的流程图,具体包括以下步骤:
S100:执行与所述应用代码对应的WebAssembly字节码。
S102:响应于所述WebAssembly字节码中的任一目标WebAssembly字节码出现执行异常,确定所述目标WebAssembly字节码是否位于所述目标异常处理区域内;如果是,跳转到与所述目标异常处理区域对应的用于处理异常的代码段,对所述异常进行处理。
在本说明书实施例中,代码异常处理的方法应用于电子设备上搭载的用于运行应用的虚拟机,执行主体可以是虚拟机。虚拟机的物理载体可以是电子设备,电子设备包括:服务器、服务器集群、资源受限设备等。为了便于描述,下面仅以虚拟机为执行主体,对本说明书提供的代码异常处理的方法进行说明。
在实际应用中,虚拟机在执行WebAssembly字节码时,WebAssembly字节码中不存在对异常进行处理的WebAssembly字节码。因此,在执行WebAssembly字节码出现异常时,只能由虚拟机对异常进行处理。
对于不同的与应用代码对应的WebAssembly字节码而言,虚拟机对异常进行处理的方法相同的。由于部分的应用代码存在特殊的业务需求。例如,业务需求为保证用户数据的数据安全,那么,在WebAssembly字节码出现执行异常时,需要对参数进行数据脱敏。而虚拟机对异常进行处理的方法中并不存在对参数进行数据脱敏的方法。再例如,业务需求为对安装包进行安装,那么,在WebAssembly字节码出现执行异常时,可以先跳过对这部分数据的处理,对后续数据继续进行安装。同样的,虚拟机对异常进行处理的方法中也不存在跳过对这部分数据的处理的方法。
基于此,虚拟机可以在WebAssembly字节码中预设了至少一个异常处理区域,为不同的异常处理区域预设不同的自定义的用于处理异常的代码段。从而,满足WebAssembly字节码在不同的异常处理区域出现执行异常时,对异常进行自定义处理的需求。
在本说明书实施例中,虚拟机可以获取应用代码。
然后,虚拟机可以通过编译器,将应用代码转换为WebAssembly字节码,并对WebAssembly字节码中的用于调用代码段的字节码进行修改,修改为用于标识异常处理区域的起始位置的起始字节码以及用于标识异常处理区域的结束位置的结束字节码。
例如,虚拟机可以通过编译器,将应用代码转换为WebAssembly字节码,并对WebAssembly字节码中的call字节码(用于调用代码段的字节码)进行修改,修改为try字节码(用于标识异常处理区域的起始位置的起始字节码)以及catch字节码(用于标识异常处理区域的结束位置的结束字节码)。
在本说明书实施例中,在WebAssembly字节码中预设了至少一个异常处理区域,异常处理区域预设了自定义的用于处理异常的代码段。虚拟机可以执行与应用代码对应的WebAssembly字节码。
然后,响应于WebAssembly字节码中的任一目标WebAssembly字节码出现执行异常,确定目标WebAssembly字节码是否位于目标异常处理区域内。如果是,跳转到与目标异常处理区域对应的用于处理异常的代码段,对异常进行处理。这里提到的异常可以是指在执行WebAssembly字节码的过程中,检测到数据、变量或执行流程与预期不符合,则确定出现执行异常。这里提到的用于处理异常的代码段可以是指处理异常的函数。
其中,自定义的用于处理异常的代码段可以是由技术人员可以根据业务需求对代码段进行自定义的。
进一步的,异常处理区域包括用于标识异常处理区域的起始位置的起始字节码以及用于标识异常处理区域的结束位置的结束字节码。
虚拟机可以在执行至WebAssembly字节码中的目标起始字节码时,开始对目标异常处理区域进行监控,直到执行至与目标结束字节码,结束对目标代码监控区域的监控。从而,对WebAssembly字节码的执行过程进行监控。
然后,虚拟机可以通过确定目标WebAssembly字节码是否位于目标异常处理区域内的目标起始字节码与目标结束字节码之间的区域,从而确定目标WebAssembly字节码是否位于目标异常处理区域内。
例如,在内存空间中,虚拟机需要确定与目标WebAssembly字节码对应的内存地址。其次,根据与目标起始字节码对应的内存地址,以及目标结束字节码相对于目标起始字节码的偏移值,确定与目标异常处理区域对应的内存地址范围。然后,确定与目标WebAssembly字节码对应的内存地址是否位于与目标异常处理区域对应的内存地址范围内。
由于在执行代码的过程中,具有调用关系的多个代码段会进行代码段调用。例如,在执行与代码段A对应的WebAssembly字节码时,代码段A会调用代码段B。并且,在与代码段B对应的WebAssembly字节码中也会存在异常处理区域,虚拟机需要进一步对与代码段B对应的异常处理区域进行监控,并在与代码段B对应的异常处理区域中的目标WebAssembly字节码出现执行异常时,对异常进行处理。
然而,不同的异常处理区域对应的用于处理异常的代码段并不相同。在目标异常处理区域内存在具有调用关系的多个代码段的情况下,虚拟机无法分辨出在目标WebAssembly字节码出现执行异常时,需要调用哪个用于处理异常的代码段对异常进行处理。
基于此,虚拟机可以在执行至与多个代码段对应的异常处理区域中的起始字节码时,注册多个用于处理异常的代码段,以用于后续对异常进行处理。
由于本说明书实施例中虚拟机的载体可以为资源受限设备,在多个代码段的调用关系较为复杂的情况下,资源受限设备的内存有限。为了避免出现资源受限设备的内存资源耗尽的情况,在执行至与多个代码段对应的异常处理区域中的结束字节码时,虚拟机可以注销对应的用于处理异常的代码段,从而,避免了资源受限设备的内存资源耗尽。
在本说明书实施例中,目标异常处理区域内嵌套了至少一个与具有调用关系的多个代码段对应的异常处理区域。
虚拟机可以在执行至WebAssembly字节码中的目标起始字节码时,开始对目标异常处理区域进行监控,按照多个代码段的调用顺序,为多个代码段中的各个与代码段对应的异常处理区域依次注册对应的用于处理异常的代码段;
在执行至与多个代码段对应的异常处理区域中的结束字节码时,按照多个代码段的调用顺序,为多个代码段中的各个与代码段对应的异常处理区域依次注销对应的用于处理异常的代码段,直到执行至与目标结束字节码,结束对目标异常处理区域的监控。具体如图2所示。
图2是一示例性的实施例示出的一种用于处理异常的代码段的注册及注销过程的示意图。
在图2中,虚拟机在执行至与代码段A对应的WebAssembly字节码中的起始字节码时,开始对与代码段A对应的异常处理区域进行监控,并注册用于处理异常的代码段1。然后,执行与代码段A对应的WebAssembly字节码a,跳转到代码段B。
其次,虚拟机在执行至与代码段B对应的WebAssembly字节码中的起始字节码时,开始对与代码段B对应的异常处理区域进行监控,并注册用于处理异常的代码段2。然后,执行与代码段B对应的WebAssembly字节码b。
而后,虚拟机在执行至与代码段B对应的WebAssembly字节码中的结束字节码时,注销用于处理异常的代码段2。并结束对与代码段B对应的异常处理区域的监控。
最后,虚拟机返回上一层的代码段A,在执行至与代码段A对应的WebAssembly字节码中的结束字节码时,注销用于处理异常的代码段1,并结束对与代码段A对应的异常处理区域的监控。
可以看出,随着WebAssembly字节码的执行,按照多个代码段的调用顺序,依次对多个用于处理异常的代码段进行注册。并且,随着WebAssembly字节码的执行,按照与多个代码段的调用顺序相反的顺序,对依次对多个用于处理异常的代码段进行注销。也就是说,最先注册的用于处理异常的代码段是最后一个被注销的。其中,本说明书中不对异常处理区域的数量以及注册用于处理异常的代码段的数量进行限制。
进一步的,在本说明书实施例中,目标异常处理区域内包含至少一个异常处理子区域。
虚拟机在执行至WebAssembly字节码中的目标起始字节码时,开始对目标异常处理区域进行监控,并在执行至与至少一个异常处理子区域对应的起始字节码时,为至少一个异常处理子区域注册对应的用于处理异常的代码段。
然后,虚拟机在执行至与至少一个异常处理子区域对应的结束字节码时,为至少一个异常处理子区域注销对应的用于处理异常的代码段,直到执行至与目标结束字节码,结束对目标异常处理区域的监控。具体如图3所示。
图3是一示例性的实施例示出的另一种用于处理异常的代码段的注册及注销过程的示意图。
在图3中,虚拟机在执行至与代码段A对应的WebAssembly字节码的起始字节码时,开始对与代码段A对应的异常处理区域进行监控,并在执行至与异常处理子区域A1对应的起始字节码时,为异常处理子区域A1注册对应的用于处理异常的代码段1。然后,执行WebAssembly字节码a1。
其次,虚拟机在执行至与异常处理子区域A1对应的结束字节码时,注销用于处理异常的代码段1。
而后,虚拟机在执行至与异常处理子区域A2对应的起始字节码时,为异常处理子区域A2注册对应的用于处理异常的代码段2。然后,执行WebAssembly字节码a2。
最后,虚拟机在执行至与异常处理子区域A2对应的结束字节码时,注销用于处理异常的代码段2,直到执行至目标结束字节码,结束对与代码段A对应的异常处理区域的监控。
在本说明书实施例中,虚拟机可以按照与多个异常处理区域对应的用于处理异常的代码段的注册顺序,将多个异常处理区域中的各个用于处理异常的代码段的代码段信息,依次存储到为与多个异常处理区域对应的用于处理异常的代码段注册的代码段数组中。其中,代码段信息包括:代码段对应的异常处理区域中的起始字节码、虚拟机栈帧信息。这里提到的虚拟机栈帧信息可以保存在用于标识异常处理区域的起始位置的起始字节码的操作数中,字节码由字节操作码以及操作数组成。
然后,虚拟机可以在执行至与多个异常处理区域对应的异常处理区域中的结束字节码之后,按照与多个异常处理区域对应的用于处理异常的代码段的注销顺序,将多个异常处理区域中的各个用于处理异常的代码段的代码段信息,从为与所述多个异常处理区域对应的用于处理异常的代码段注册的代码段数组中依次删除。
在实际应用中,在目标WebAssembly字节码出现执行异常时,虚拟机需要清除与目标WebAssembly字节码对应的代码段中的部分局部变量,避免在跳转到用于处理异常的代码段的过程中,用于处理异常的代码段访问到这部分局部变量。
基于此,代码段数组中还包含有注册用于处理异常的代码段时虚拟机栈中的虚拟机栈帧信息。
在本说明书实施例中,代码段信息包括:代码段对应的异常处理区域中的起始字节码、虚拟机栈帧信息。虚拟机可以按照代码段数组中的各个代码段对应的异常处理区域中的起始字节码以及各异常处理区域所在代码段的大小,确定与各用于处理异常的代码段对应的异常处理区域。
然后,虚拟机可以从与各用于处理异常的代码段对应的异常处理区域中,确定目标WebAssembly字节码是否位于的目标异常处理区域内。如果是,基于虚拟机栈帧信息,恢复虚拟机栈帧,跳转到与目标异常处理区域对应的用于处理异常的代码段,对异常进行处理。以图2为例,代码段数组如下表1所示:
表1为代码段数组的数组元素结构
在上述表1中,在注册用于处理异常的代码段A时,虚拟机可以将与代码段A对应的异常处理区域的起始字节码以及虚拟机栈帧信息存储到代码段数组中,并且,确定用于处理异常的代码段A在代码段数组中的数组标识为1。
同样的,在注册用于处理异常的代码段B时,虚拟机可以将与代码段B对应的异常处理区域的起始字节码以及虚拟机栈帧信息存储到代码段数组中,并且,确定用于处理异常的代码段B在代码段数组中的数组标识为2。
然后,在目标WebAssembly字节码出现执行异常时,从代码段数组中,获取数组标识为2的代码段信息,根据与代码段B对应的异常处理区域的起始字节码以及异常处理区域所在代码段的大小,确定与代码段B对应的异常处理区域。
接着,如果确定目标WebAssembly字节码不位于与代码段B对应的异常处理区域内,从代码段数组中,获取数组标识为1的代码段信息,根据与代码段A对应的异常处理区域的起始字节码以及异常处理区域所在代码段的大小,确定与代码段A对应的异常处理区域。
如果确定目标WebAssembly字节码位于与代码段A对应的异常处理区域内,基于与代码段A对应的虚拟机栈帧信息,恢复虚拟机栈帧,跳转到与目标异常处理区域对应的用于处理异常的代码段A,对异常进行处理。
需要说明的是,代码段的大小是WebAssembly字节码中起始字节码进行记录的,每个代码段被执行时,都会有一个变量记录代码段的大小,代码段的大小被压入到虚拟机栈帧中。在调用代码段过程中,根据代码段的起始字节码,可以读出代码段的大小。
进一步的,如果确定目标WebAssembly字节码位于与代码段B对应的异常处理区域内,根据与代码段B对应的异常处理区域的起始字节码,从虚拟机栈中读取的处理异常的代码段的代码段表端索引,并对用于处理异常的代码段的代码段表端索引进行解析。从而,跳转到用于处理异常的代码段B,对异常进行处理。
同样的,如果确定目标WebAssembly字节码位于与代码段A对应的异常处理区域内,根据与代码段A对应的异常处理区域的起始字节码,从虚拟机栈中读取的用于处理异常的代码段的代码段表端索引,并对用于处理异常的代码段的代码段表端索引进行解析。从而,跳转到用于处理异常的代码段A,对异常进行处理。
当然,当用于处理异常的代码段位于异常处理区域内时,虚拟机可以直接跳转到用于处理异常的代码段中。其中,代码段数组的标识也可以通过与在注册的用于处理异常的代码段时存储在代码段数组中的代码段信息的数量进行表示。
在本说明书实施例中,虚拟机在执行WebAssembly字节码的过程中,如果执行目标WebAssembly字节码超出了虚拟机规范定义的限制,虚拟机可以抛出异常,那么,虚拟机无法从代码段数组中查询到目标WebAssembly字节码所位于的异常处理区域。在这种情况下,可以通过虚拟机对该异常进行处理。
在实际应用中,在基于用于处理异常的代码段对异常进行处理的过程中,还可能出现其他异常,因此,虚拟机还需要对其他异常进行处理。
在本说明书实施例中,在基于用于处理异常的代码段对异常进行处理的过程中,确定是否出现其他异常,如果是,从位于目标结束字节码之后的首个WebAssembly字节码开始,以继续执行WebAssembly字节码。如果否,确定其他异常位于的异常处理区域,跳转到与其他异常位于的异常处理区域对应的用于处理异常的代码段,对其他异常进行处理。具体如图4所示。
图4是一示例性的实施例示出的一种执行WebAssembly字节码的过程的示意图。
在图4中,虚拟机执行与代码段A对应的WebAssembly字节码a,响应于与代码段A对应的WebAssembly字节码a出现执行异常,跳转到用于处理异常的代码段1,对异常进行处理。
其次,在基于用于处理异常的代码段1对异常进行处理的过程中,确定是否出现其他异常,如果响应于与代码段1对应的WebAssembly字节码1出现执行异常,虚拟机跳转到用于处理异常的代码段2,对异常进行处理。在对异常进行处理后,如果未出现其他异常,从位于与代码段A对应的结束字节码之后的首个WebAssembly字节码开始,以继续执WebAssembly字节码a2。
从上述方法中可以看出,WebAssembly字节码中预设了至少一个异常处理区域,异常处理区域预设了自定义的用于处理异常的代码段。虚拟机可以执行与应用代码对应的WebAssembly字节码,响应于WebAssembly字节码中的任一目标WebAssembly字节码出现执行异常,确定目标WebAssembly字节码是否位于目标异常处理区域内。如果是,跳转到与目标异常处理区域对应的用于处理异常的代码段,对异常进行处理。本方法可以在异常处理区域内的WebAssembly字节码出现执行异常时,跳转到与目标异常处理区域对应的用于处理异常的代码段,对异常进行处理。
与上述代码异常处理的方法的实施例对应的,本说明书还提供了一种代码异常处理的装置的实施例。
请参见图5,图5是一示例性的实施例示出的一种代码异常处理的装置所在电子设备的结构图。在硬件层面,该设备包括处理器502、内部总线504、网络接口506、内存508以及非易失性存储器510,当然还可能包括其他所需要的硬件。本说明书一个或多个实施例可以基于软件方式来实现,比如由处理器502从非易失性存储器510中读取对应的计算机程序到内存508中然后运行。当然,除了软件实现方式之外,本说明书一个或多个实施例并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
请参见图6,图6是一示例性的实施例示出的一种代码异常处理的装置的框图。该代码异常处理的装置可以应用于如图5所示的电子设备中,以实现本说明书的技术方案。其中,所述代码异常处理的装置可以包括:
执行模块600,用于执行与所述应用代码对应的WebAssembly字节码;
处理模块602,用于响应于所述WebAssembly字节码中的任一目标WebAssembly字节码出现执行异常,确定所述目标WebAssembly字节码是否位于所述目标异常处理区域内;如果是,跳转到与所述目标异常处理区域对应的用于处理异常的代码段,对所述异常进行处理。
可选的,所述执行模块600,具体还用于获取应用代码,通过编译器,将所述应用代码转换为WebAssembly字节码,并对WebAssembly字节码中的用于调用代码段的字节码进行修改,修改为用于标识异常处理区域的起始位置的起始字节码以及用于标识异常处理区域的结束位置的结束字节码。
可选的,所述异常处理区域包括用于标识所述异常处理区域的起始位置的起始字节码以及用于标识所述异常处理区域的结束位置的结束字节码,所述处理模块602,具体用于在执行至所述WebAssembly字节码中的目标起始字节码时,开始对目标异常处理区域进行监控,直到执行至与所述目标结束字节码,结束对所述目标异常处理区域的监控,确定所述目标WebAssembly字节码是否位于所述目标异常处理区域内的目标起始字节码与所述目标结束字节码之间的区域。
可选的,所述目标异常处理区域内嵌套了至少一个与具有调用关系的多个代码段对应的异常处理区域,所述处理模块602,具体用于在执行至所述WebAssembly字节码中的目标起始字节码时,开始对目标异常处理区域进行监控,按照所述多个代码段的调用顺序,为所述多个代码段中的各个与代码段对应的异常处理区域依次注册对应的处理异常的代码段,在执行至与所述多个代码段对应的异常处理区域中的结束字节码时,按照所述多个代码段的调用顺序,为所述多个代码段中的各个与代码段对应的异常处理区域依次注销对应的用于处理异常的代码段,直到执行至与所述目标结束字节码,结束对所述目标异常处理区域的监控。
可选的,所述目标异常处理区域内包含至少一个异常处理子区域,所述处理模块602,具体用于在执行至所述WebAssembly字节码中的目标起始字节码时,开始对目标异常处理区域进行监控,并在执行至与所述至少一个异常处理子区域对应的起始字节码时,为所述至少一个异常处理子区域注册对应的处理异常的代码段,在执行至与所述至少一个异常处理子区域对应的结束字节码时,为所述至少一个异常处理子区域注销对应的用于处理异常的代码段,直到执行至所述目标结束字节码,结束对所述目标异常处理区域的监控。可选的,所述处理模块602,具体用于按照与多个异常处理区域对应的用于处理异常的代码段的注册顺序,将所述多个异常处理区域中的各个用于处理异常的代码段的代码段信息,依次存储到为与所述多个异常处理区域对应的用于处理异常的代码段注册的代码段数组中,在执行至与所述多个异常处理区域对应的异常处理区域中的结束字节码之后,按照与多个异常处理区域对应的用于处理异常的代码段的注销顺序,将所述多个异常处理区域中的各个用于处理异常的代码段的代码段信息,从为与所述多个异常处理区域对应的用于处理异常的代码段注册的代码段数组中依次删除。
可选的,所述代码段信息包括:代码段对应的异常处理区域中的起始字节码、虚拟机栈帧信息,所述处理模块602,具体用于按照所述代码段数组中的各个代码段对应的异常处理区域中的起始字节码以及各异常处理区域所在代码段的大小,确定与各用于处理异常的代码段对应的异常处理区域,从与各用于处理异常的代码段对应的异常处理区域中,确定所述目标WebAssembly字节码是否位于的目标异常处理区域内,如果是,基于与所述目标异常处理区域对应的用于处理异常的代码段信息中的虚拟机栈帧信息,恢复虚拟机栈帧,跳转到与所述目标异常处理区域对应的用于处理异常的代码段,对所述异常进行处理。
可选的,所述处理模块602,具体用于如果否,通过所述虚拟机对所述异常进行处理。
可选的,所述处理模块602,具体用于在基于所述用于处理异常的代码段对所述异常进行处理的过程中,确定是否出现其他异常,如果否,从位于所述目标结束字节码之后的首个WebAssembly字节码开始,以继续执行所述WebAssembly字节码;如果是,确定所述其他异常位于的异常处理区域,跳转到与所述其他异常位于的异常处理区域对应的用于处理异常的代码段,对所述其他异常进行处理。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例只是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
在一个典型的配置中,计算机包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。
Claims (12)
1.一种代码异常处理的方法,其特征在于,所述方法应用于电子设备上搭载的用于运行与应用代码对应的WebAssembly字节码的虚拟机;在所述WebAssembly字节码中预设了至少一个异常处理区域,所述异常处理区域预设了自定义的用于处理异常的代码段,包括:
执行与所述应用代码对应的WebAssembly字节码;
响应于所述WebAssembly字节码中的任一目标WebAssembly字节码出现执行异常,确定所述目标WebAssembly字节码是否位于所述目标异常处理区域内;如果是,跳转到与所述目标异常处理区域对应的用于处理异常的代码段,对所述异常进行处理。
2.如权利要求1所述的方法,其特征在于,在执行与所述应用代码对应的WebAssembly字节码之前,所述方法还包括:
获取应用代码;
通过编译器,将所述应用代码转换为WebAssembly字节码,并对WebAssembly字节码中的用于调用代码段的字节码进行修改,修改为用于标识异常处理区域的起始位置的起始字节码以及用于标识异常处理区域的结束位置的结束字节码。
3.如权利要求1所述的方法,其特征在于,所述异常处理区域包括用于标识所述异常处理区域的起始位置的起始字节码以及用于标识所述异常处理区域的结束位置的结束字节码;
确定所述目标WebAssembly字节码是否位于所述目标异常处理区域内,包括:
在执行至所述WebAssembly字节码中的目标起始字节码时,开始对目标异常处理区域进行监控,直到执行至与所述目标结束字节码,结束对所述目标异常处理区域的监控;
确定所述目标WebAssembly字节码是否位于所述目标异常处理区域内的目标起始字节码与所述目标结束字节码之间的区域。
4.如权利要求3所述的方法,其特征在于,所述目标异常处理区域内嵌套了至少一个与具有调用关系的多个代码段对应的异常处理区域;
在执行至所述WebAssembly字节码中的目标起始字节码时,开始对目标异常处理区域进行监控,直到执行至与所述目标结束字节码,结束对所述目标代码监控区域的监控,包括:
在执行至所述WebAssembly字节码中的目标起始字节码时,开始对目标异常处理区域进行监控,按照所述多个代码段的调用顺序,为所述多个代码段中的各个与代码段对应的异常处理区域依次注册对应的处理异常的代码段;
在执行至与所述多个代码段对应的异常处理区域中的结束字节码时,按照所述多个代码段的调用顺序,为所述多个代码段中的各个与代码段对应的异常处理区域依次注销对应的用于处理异常的代码段,直到执行至与所述目标结束字节码,结束对所述目标异常处理区域的监控。
5.如权利要求3所述的方法,其特征在于,所述目标异常处理区域内包含至少一个异常处理子区域;
在执行至所述WebAssembly字节码中的目标起始字节码时,开始对目标异常处理区域进行监控,直到执行至与所述目标结束字节码,结束对所述目标代码监控区域的监控,包括:
在执行至所述WebAssembly字节码中的目标起始字节码时,开始对目标异常处理区域进行监控,并在执行至与所述至少一个异常处理子区域对应的起始字节码时,为所述至少一个异常处理子区域注册对应的处理异常的代码段;
在执行至与所述至少一个异常处理子区域对应的结束字节码时,为所述至少一个异常处理子区域注销对应的用于处理异常的代码段,直到执行至所述目标结束字节码,结束对所述目标异常处理区域的监控。
6.如权利要求4所述的方法,其特征在于,在执行至与所述多个代码段对应的异常处理区域中的结束字节码之前,所述方法还包括:
按照与多个异常处理区域对应的用于处理异常的代码段的注册顺序,将所述多个异常处理区域中的各个用于处理异常的代码段的代码段信息,依次存储到为与所述多个异常处理区域对应的用于处理异常的代码段注册的代码段数组中;
在执行至与所述多个异常处理区域对应的异常处理区域中的结束字节码之后,按照与多个异常处理区域对应的用于处理异常的代码段的注销顺序,将所述多个异常处理区域中的各个用于处理异常的代码段的代码段信息,从为与所述多个异常处理区域对应的用于处理异常的代码段注册的代码段数组中依次删除。
7.如权利要求6所述的方法,其特征在于,所述代码段信息包括:代码段对应的异常处理区域中的起始字节码、虚拟机栈帧信息;
确定所述目标WebAssembly字节码是否位于所述目标异常处理区域内,包括:
按照所述代码段数组中的各个代码段对应的异常处理区域中的起始字节码以及各异常处理区域所在代码段的大小,确定与各用于处理异常的代码段对应的异常处理区域;
从与各用于处理异常的代码段对应的异常处理区域中,确定所述目标WebAssembly字节码是否位于的目标异常处理区域内;
如果是,跳转到与所述目标异常处理区域对应的用于处理异常的代码段,对所述异常进行处理,包括:
如果是,基于与所述目标异常处理区域对应的用于处理异常的代码段信息中的虚拟机栈帧信息,恢复虚拟机栈帧,跳转到与所述目标异常处理区域对应的用于处理异常的代码段,对所述异常进行处理。
8.如权利要求7所述的方法,其特征在于,所述方法还包括:
如果否,通过所述虚拟机对所述异常进行处理。
9.如权利要求3或权利要求4所述的方法,其特征在于,所述方法还包括:
在基于所述用于处理异常的代码段对所述异常进行处理的过程中,确定是否出现其他异常,如果否,从位于所述目标结束字节码之后的首个WebAssembly字节码开始,以继续执行所述WebAssembly字节码;如果是,确定所述其他异常位于的异常处理区域,跳转到与所述其他异常位于的异常处理区域对应的用于处理异常的代码段,对所述其他异常进行处理。
10.一种代码异常处理的装置,其特征在于,所述装置应用于电子设备上搭载的用于运行与应用代码对应的WebAssembly字节码的虚拟机;所述WebAssembly字节码中预设了至少一个异常处理区域,所述异常处理区域预设了自定义的用于处理异常的代码段,包括:
执行模块,用于执行与所述应用代码对应的WebAssembly字节码;
处理模块,用于响应于所述WebAssembly字节码中的任一目标WebAssembly字节码出现执行异常,确定所述目标WebAssembly字节码是否位于所述目标异常处理区域内;如果是,跳转到与所述目标异常处理区域对应的用于处理异常的代码段,对所述异常进行处理。
11.一种电子设备,其特征在于,包括通信接口、处理器、存储器和总线,所述通信接口、所述处理器和所述存储器之间通过总线相互连接;
所述存储器中存储机器可读指令,所述 处理器通过调用所述机器可读指令,执行权利要求1至9任一项所述的方法。
12.一种机器可读存储介质,其特征在于,所述机器可读存储介质存储有机器可读指令,所述机器可读指令在被处理器调用和执行时,实现权利要求1至9任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311306041.9A CN117033064A (zh) | 2023-10-10 | 2023-10-10 | 一种代码异常处理的方法及装置 |
CN202410763214.8A CN118626298A (zh) | 2023-10-10 | 2024-06-13 | 一种代码异常处理的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311306041.9A CN117033064A (zh) | 2023-10-10 | 2023-10-10 | 一种代码异常处理的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117033064A true CN117033064A (zh) | 2023-11-10 |
Family
ID=88639533
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311306041.9A Pending CN117033064A (zh) | 2023-10-10 | 2023-10-10 | 一种代码异常处理的方法及装置 |
CN202410763214.8A Pending CN118626298A (zh) | 2023-10-10 | 2024-06-13 | 一种代码异常处理的方法及装置 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410763214.8A Pending CN118626298A (zh) | 2023-10-10 | 2024-06-13 | 一种代码异常处理的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN117033064A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060282828A1 (en) * | 2005-06-13 | 2006-12-14 | Mehta Virendra K | Handling caught exceptions |
CN110673929A (zh) * | 2019-09-29 | 2020-01-10 | 北京智游网安科技有限公司 | 一种保护异常机制的方法、智能终端及存储介质 |
CN114528204A (zh) * | 2022-01-13 | 2022-05-24 | 阿里巴巴(中国)有限公司 | 处理代码的方法、处理异常的方法以及各自的装置 |
CN114968282A (zh) * | 2022-05-20 | 2022-08-30 | 北京握奇智能科技有限公司 | 一种异常处理执行的优化方法和系统 |
-
2023
- 2023-10-10 CN CN202311306041.9A patent/CN117033064A/zh active Pending
-
2024
- 2024-06-13 CN CN202410763214.8A patent/CN118626298A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060282828A1 (en) * | 2005-06-13 | 2006-12-14 | Mehta Virendra K | Handling caught exceptions |
CN110673929A (zh) * | 2019-09-29 | 2020-01-10 | 北京智游网安科技有限公司 | 一种保护异常机制的方法、智能终端及存储介质 |
CN114528204A (zh) * | 2022-01-13 | 2022-05-24 | 阿里巴巴(中国)有限公司 | 处理代码的方法、处理异常的方法以及各自的装置 |
CN114968282A (zh) * | 2022-05-20 | 2022-08-30 | 北京握奇智能科技有限公司 | 一种异常处理执行的优化方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN118626298A (zh) | 2024-09-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110704037B (zh) | 一种规则引擎实现方法及装置 | |
CN116680015B (zh) | 函数调用方法、装置、电子设备及可读存储介质 | |
CN109710286B (zh) | 系统升级方法、装置、设备和存储介质 | |
CN110992188B (zh) | 交易处理方法、装置及设备 | |
CN116661910B (zh) | 一种应用调用的方法及装置 | |
CN112882732A (zh) | 一种软件开发工具包sdk中功能代码的更新方法和装置 | |
CN114416224B (zh) | 一种在多微服务环境下调用微服务的方法及装置 | |
CN109190367B (zh) | 利用沙箱运行应用程序安装包的方法及装置 | |
CN116680014B (zh) | 数据处理方法和装置 | |
CN111709016B (zh) | 一种基层医保结算数据防护方法及系统 | |
CN117033064A (zh) | 一种代码异常处理的方法及装置 | |
CN116700629B (zh) | 数据处理方法和装置 | |
CN116466953B (zh) | 组件化的前端开发方法、装置、计算机设备和存储介质 | |
CN109409037B (zh) | 一种数据混淆规则的生成方法、装置及设备 | |
CN117591163A (zh) | 内核升级方法、装置、介质、芯片和电子设备 | |
CN113849811A (zh) | 一种共享虚拟资源分析方法及装置 | |
CN116700841B (zh) | 一种原生api调用的方法及装置 | |
CN114691496A (zh) | 单元测试方法、装置、计算设备及介质 | |
CN117251234B (zh) | 基于补丁的函数调用方法及装置 | |
CN116755845B (zh) | 数据处理方法和装置 | |
CN113448588B (zh) | 数据安全处理方法、装置、电子设备和存储介质 | |
CN111125711A (zh) | 安全任务处理方法、装置、电子设备及存储介质 | |
CN113835917B (zh) | 内存记账异常检测方法、装置、电子设备及存储介质 | |
CN116700840B (zh) | 文件执行方法、装置、电子设备及可读存储介质 | |
CN108664293B (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 | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20231110 |