[发明专利]对所引起的异常的通知有效
申请号: | 201080020348.7 | 申请日: | 2010-04-30 |
公开(公告)号: | CN102422261A | 公开(公告)日: | 2012-04-18 |
发明(设计)人: | A·J·帕多;G·康纳;M·M·马格鲁德;Y·林;J·C·施瓦茨 | 申请(专利权)人: | 微软公司 |
主分类号: | G06F9/06 | 分类号: | G06F9/06;G06F9/44;G06F9/30 |
代理公司: | 上海专利商标事务所有限公司 31100 | 代理人: | 蔡悦 |
地址: | 美国华*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 引起 异常 通知 | ||
1.一种用于提供对异常的通知的计算机实现的方法,所述方法包括:
在应用的执行期间接收310对异常已经被引起的通知;
检测340与在其中发生过所述异常的帧相关联的运行时异常处理程序;
标识350与所述异常相关联的运行时线程对象;
标识370与所标识的线程对象相关联的应用对象;
调用380与所标识的应用对象相关联的异常通知处理程序;以及
执行390正常的异常处理以便处理所述异常并清除所分配的对象,
其中前述各步骤是由至少一个处理器来执行的。
2.如权利要求1所述的方法,其特征在于,接收对异常已经被引起的通知包括调用操作系统提供的函数来引起软件异常。
3.如权利要求1所述的方法,其特征在于,接收对异常已经被引起的通知包括接收对由硬件生成的硬件异常的通知。
4.如权利要求1所述的方法,其特征在于,进一步包括,在接收对异常已经被引起的通知之后,检测调试器是否被附连到所述应用,且响应于确定调试器被附连到所述应用,通知所附连的调试器以便给予所述调试器处理所述异常的第一选项。
5.如权利要求1所述的方法,其特征在于,进一步包括检测与所述异常相关联的类型,其中检测类型包括将操作系统提供的代码映射到运行时类型。
6.如权利要求1所述的方法,其特征在于,进一步包括检测与所述异常相关联的类型并将所检测的类型对象提供给所述异常通知处理程序。
7.如权利要求1所述的方法,其特征在于,标识运行时线程对象包括从在其中发生过所述异常且存储与由所述运行时托管的所述线程有关的数据的所述线程的所述堆栈帧中标识适当的线程对象,且其中,标识应用对象包括标识表示应用的隔离边界的应用域对象。
8.如权利要求1所述的方法,其特征在于,调用所述处理程序包括通过所述应用对象的方法标识先前注册的处理程序。
9.如权利要求1所述的方法,其特征在于,调用所述处理程序在执行修改与所述异常相关的应用状态的异常处理之前发生。
10.一个用于在用于处理异常的路径外提供对所引起的异常的通知的计算机系统,所述系统包括:
被配置为执行软件指令的处理器和存储器;
被配置为从应用接收对处理程序进行注册的请求的处理程序注册组件110,所述处理程序响应于异常发生来接收由所述系统提供的提前通知;
被配置为检测在程序正在执行时异常被引起的异常检测组件120;
被配置为响应于所检测的异常来查找异常状态并标识与所述异常相关联的应用对象的对象发现组件130;
被配置为调用一个或多个已注册的应用处理程序以便在异常处理发生之前向所述处理程序通知所检测的异常的异常通知组件140;以及
被配置为在所述已注册的应用处理程序已经被通知之后执行异常处理的异常处理组件150。
11.如权利要求10所述的系统,其特征在于,所述处理程序注册组件还被配置为基于其中所述处理程序是一方法的类来标识所述处理程序。
12.如权利要求10所述的系统,其特征在于,所述处理程序注册组件还被配置为确定处理程序注册函数的调用者的安全级别并且如果所述调用者低于阈值安全级别则拒绝登记。
13.如权利要求10所述的系统,其特征在于,所述异常检测组件还被配置为对在所述异常被引起时要由操作系统通知的运行时处理程序函数进行注册。
14.如权利要求10所述的系统,其特征在于,所述对象发现组件还被配置为在异常类的分层结构中确定所述异常的类型。
15.如权利要求10所述的系统,其特征在于,所述异常通知组件还被配置为将异常对象作为参数提供给所述已注册的处理程序,所述处理程序可以通过所述作为参数的异常对象来检索关于所述异常的原因的附加信息。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于微软公司,未经微软公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201080020348.7/1.html,转载请声明来源钻瓜专利网。