iOS開發拓展篇—異常處理

異常處理

01 通常處理方式:
    a.app異常閃退,那麼捕獲crash信息,並記錄在本地沙盒中。
    b.當下次用戶從新打開app的時候,檢查沙盒中是否保存有上次捕獲到的crash信息。
    c.若是有那麼利用專門的接口發送給服務器,以求在後期版本中修復。

02 如何拋出異常

    //拋出異常的兩種方式
        // @throw  [NSException exceptionWithName:@"好大一個bug" reason:@"異常緣由:我也不知道" userInfo:nil];

        //方式二
        NSString *info = [NSString stringWithFormat:@"%@方法找不到",NSStringFromSelector(aSelector)];
        //下面這種方法是自動拋出的
        [NSException raise:@"這是一個異常" format:info,nil];

03 如何捕獲異常
    NSSetUncaughtExceptionHandler (&UncaughtExceptionHandler);

    void UncaughtExceptionHandler(NSException *exception) {
    NSArray *arr = [exception callStackSymbols];//獲得當前調用棧信息
    NSString *reason = [exception reason];//很是重要,就是崩潰的緣由
    NSString *name = [exception name];//異常類型

    NSString *errorMsg = [NSString stringWithFormat:@"當前調用棧的信息:%@\nCrash的緣由:%@\n異常類型:%@\n",arr,reason,name];
    //把該信息保存到本地沙盒,下次回傳給服務器。
}
相關文章
相關標籤/搜索