如何防止程序崩溃

Posted code-killer

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何防止程序崩溃相关的知识,希望对你有一定的参考价值。

//程序崩溃规避

//Windows
1、设置编译器"Enable C++ Exceptions"为"/EHa",即"Yes with SEH Exceptions",
使得应用程序可以捕获因自身引起的大部分系统异常,少部分不可回避的系统异常依然
会导致程序崩溃退出;
2、用"trycatch(...)"包裹可能会发生崩溃(越界、段错误、除零等操作)的代码段,
在catch中处理异常。

* 高版本VC提供_set_invalid_parameter_handler函数,亦可处理致命异常,因为这个
是全局生效的,所以不推荐使用。

//Unix
1、越界、段错误、除零等操作通常会触发信号"SIGSEGV",可以使用signal函数设定指定
信号的处理函数,除了"SIGSEGV",还有若干个可被应用程序截获的信号,可以根据自
己的需求去截获这些信号信号并处理;
2、如果想跳回某一处代码(比如崩溃之前设置的"jmp_buf"标志),可以在signal处理函
数中使用longjmp函数跳转至指定的"jmp_buf"标志处。

* 因为部分信号为标C里定义的,针对部分信号(比如"SIGSEGV")的截获处理亦适用于Windows平台。

以上是关于如何防止程序崩溃的主要内容,如果未能解决你的问题,请参考以下文章

如何防止android应用程序由于recyclerview中的空列表而崩溃? [复制]

如何防止颤振应用程序在 Dio 错误后崩溃?

如何防止android应用程序由于后台线程异常而崩溃?

如何防止多次快速点击 UITableView 的编辑按钮导致应用程序崩溃?

如何防止应用程序/游戏在一段时间后恢复时崩溃

从 JSONArray 插入/更新 +10000 行到 SqLite 时如何防止应用程序崩溃