美文网首页
iOS异常捕获

iOS异常捕获

作者: CodingTom | 来源:发表于2020-05-14 22:44 被阅读0次

    static int s_fatal_signals[] = {

        SIGABRT,

        SIGBUS,

        SIGFPE,

        SIGILL,

        SIGSEGV,

        SIGTRAP,

        SIGTERM,

        SIGKILL,

    };

    static int s_fatal_signal_num = sizeof(s_fatal_signals) / sizeof(s_fatal_signals[0]);

    void UncaughtExceptionHandler(NSException *exception) {

        NSArray *exceptionArray = [exception callStackSymbols]; //得到当前调用栈信息

        NSString *exceptionReason = [exception reason];      //非常重要,就是崩溃的原因

        NSString *exceptionName = [exception name];          //异常类型

    }

    void SignalHandler(int code)

    {

        NSLog(@"signal handler = %d",code);

    }

    void InitCrashReport()

    {

        //系统错误信号捕获

        for (int i = 0; i < s_fatal_signal_num; ++i) {

            signal(s_fatal_signals[i], SignalHandler);

        }

       

        //oc未捕获异常的捕获

        NSSetUncaughtExceptionHandler(&UncaughtExceptionHandler);

    }

    int main(int argc, char * argv[]) {

        @autoreleasepool {

            InitCrashReport();

            return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));

    相关文章

      网友评论

          本文标题:iOS异常捕获

          本文链接:https://www.haomeiwen.com/subject/gwefohtx.html