The invention relates to the field of computer technology, in particular an exception handling method and device in an application that gets the exception that is captured at the predetermined target code position when the default processing logic is triggered by the call, in which the default exception processing logic is woven during the application compilation process. In the location of the default target code in the bytecode file of the application; if it is determined that the captured exception is not a preset negligible exception, the captured anomaly is thrown and the exception information is generated when the captured exception is thrown; the captured anomaly is processed according to the exception information, so that it is true In the process of application development, the crash problem is magnified as much as possible, and the captured exceptions are re thrown to prevent the developers from relying too much on the exception capture logic. The abnormal problems that should be exposed during the development process can not be found and solved in time, and the efficiency of the development is improved.
【技术实现步骤摘要】
一种应用程序中异常处理方法及装置
本专利技术涉及计算机
,尤其涉及一种应用程序中异常处理方法及装置。
技术介绍
针对安卓(Android)的开发环境,通常采用java语言,会利用java的异常机制,将程序运行过程中的异常情况抛出交由调用方处理,但是如果调用方没有处理异常,则会导致程序崩溃(crash)。因此,现有技术中,根据防御式编程思想,在开发过程中,需要对这种调用方没有处理的异常增加异常捕获语句,同时异常捕获语句也可以解决许多Android系统本身兼容性问题导致的程序crash。但是,过度地使用异常捕获语句,会导致一些本来可以在开发过程中避免或是解决的crash问题,在开发过程中编程时被忽略了,可能会使得本来存在的逻辑问题被隐藏,进而导致在实际产品运行时出现运行异常情况,降低了用户体验,也增加了开发人员的维护工作量,降低开发的效率和有效性。
技术实现思路
本专利技术实施例提供一种应用程序中异常处理方法及装置,以解决现有技术中对异常的处理导致本可以在开发过程中解决的异常被忽略,降低了开发的效率和有效性的问题。本专利技术实施例提供的具体技术方案如下:根据本专利技术实施例的第一方面,提供了一种应用程序中异常处理方法,包括:触发调用预设的异常处理逻辑时,获取在预设的目标代码位置处被捕获的异常;其中,所述预设的异常处理逻辑是在所述应用程序编译过程中,织入到所述应用程序的字节码文件中所述预设的目标代码位置中的;若确定所述被捕获的异常不是预设的可忽略异常,则将所述被捕获的异常抛出,并获得所述被捕获的异常抛出时生成的异常信息;根据所述异常信息,对所述被捕获的异常进行 ...
【技术保护点】
1.一种应用程序中异常处理方法,其特征在于,包括:触发调用预设的异常处理逻辑时,获取在预设的目标代码位置处被捕获的异常;其中,所述预设的异常处理逻辑是在所述应用程序编译过程中,织入到所述应用程序的字节码文件中所述预设的目标代码位置中的;若确定所述被捕获的异常不是预设的可忽略异常,则将所述被捕获的异常抛出,并获得所述被捕获的异常抛出时生成的异常信息;根据所述异常信息,对所述被捕获的异常进行处理。
【技术特征摘要】
1.一种应用程序中异常处理方法,其特征在于,包括:触发调用预设的异常处理逻辑时,获取在预设的目标代码位置处被捕获的异常;其中,所述预设的异常处理逻辑是在所述应用程序编译过程中,织入到所述应用程序的字节码文件中所述预设的目标代码位置中的;若确定所述被捕获的异常不是预设的可忽略异常,则将所述被捕获的异常抛出,并获得所述被捕获的异常抛出时生成的异常信息;根据所述异常信息,对所述被捕获的异常进行处理。2.如权利要求1所述的方法,其特征在于,触发调用预设的异常处理逻辑之前,进一步包括:确定所述预设的异常处理逻辑对应的运行期的控制开关开启。3.如权利要求1或2所述的方法,其特征在于,确定所述被捕获的异常不是预设的可忽略异常,具体包括:获取所述被捕获的异常的类名和实例;根据预设的白名单,判断所述被捕获的异常的类名和实例是否在所述预设的白名单中,若确定在,则确定所述被捕获的异常为可忽略异常,若确定不在,则确定所述被捕获的异常不是预设的可忽略异常,其中,所述预设的白名单中至少包括预设的可忽略异常列表。4.如权利要求1所述的方法,其特征在于,所述预设的目标代码位置的确定方式为:根据预设的正则表达式匹配规则,在所述应用程序的字节码文件中查找所述预设的目标代码位置,其中,所述预设的正则表达式匹配规则,是根据预设的出现异常的代码的特征进行设置的。5.如权利要求1所述的方法,其特征在于,所述预设的目标代码位置为Android系统中的异常捕获语句块所在的位置。6.一种应用程序中异常处理装置,其特征...
【专利技术属性】
技术研发人员:龙泉,
申请(专利权)人:腾讯科技深圳有限公司,
类型:发明
国别省市:广东,44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。