你需要了解signal handler。
不过不能通过在signal handler中throw的方式模拟java的runtime exception,因为c++标准不允许异步异常,也就是说异常只能从throw语句和函数调用里抛出,不能从signal handler这种任何语句执行过程中都有可能发生的地方抛出。
如果要支持异步异常,例如VC有这个选项,在正常路径(未发生异常)上会付出性能代价。
所以常见的处理方式还是像google chrome那样,多进程,缩小crash影响范围。
【 在 stub 的大作中提到: 】
: 除0只是举例。空指针,越界这些在Java都可以catch,cpp全core
--
FROM 58.37.58.*