#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 1int *a = NULL;int b = *a;printf("Hello Error! %d\n", *a);#elseprintf("Hello world!\n");#endifreturn 0;}
利用这个原理,可以实现程序异常之前告诉用户,避免程序突然崩溃,或者弹出未定义的系统弹窗。
当然也可以在处理函数里面显示一个Qt的窗口。