#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的窗口。