#include <stdio.h>
#include <signal.h>
#include <stdlib.h>
// 异常信号处理函数
void errHandle(int sig)
{
// 信号发生了
printf("There is a mistake!\n");
::exit(-1);
}
int main(int argc, char *argv[])
{
// 注册异常信号处理函数
signal(SIGSEGV, errHandle);signal(SIGABRT, errHandle);#if 1
int *a = NULL;
int b = *a;
printf("Hello Error! %d\n", *a);
#else
printf("Hello world!\n");
#endif
return 0;
}
利用这个原理,可以实现程序异常之前告诉用户,避免程序突然崩溃,或者弹出未定义的系统弹窗。
当然也可以在处理函数里面显示一个Qt的窗口。