1. 编写的程序代码内部错误产生的异常,如调用对象为空(空指针异常)、数组越界异常、除0异常等。这种通常称为未检查的异常(Runtime异常子类),在虚拟机中执行时会集中处理这些异常。
  2. 其他运行中异常,通过throw语句主动抛出的异常。这类异常称为检查异常,一般是程序认为自己遇到了严重的问题,后续再运行可能会出问题,主动告知方法调用者一些必要的信息。
  3. Art虚拟机对该throw异常,遍历线程方法栈寄存器(SP)和PC指针寄存器, 得到函数方法调用栈等信息,最终用setException方法保存在tlsPtr变量中,等thread.destory调用dispatch uncaughtException的时候,将exception信息传递给之前RuntimeInit中注册的handler去处理。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部