異常處理
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];
//把該信息保存到本地沙盒,下次回傳給服務器。
}