程序異常處理

#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的窗口。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章