1.Exception 前言
在iOS裡對異常的處理及捕獲,並沒有其它語言裡那麼常見,相信很多iOS程序員都知道,更多的時候是對內存的的檢測與分析,檢測相關內存方面的問題。
而在app閃退並不是因為內存的時候,這時候我們完全可以將常見的一些異常捕獲。
捕獲後發送至服務器,並且友好提示用戶錯誤,或則直接回滾到用戶操作前,阻止應用程序的崩潰。
2.Exception處理
2.1.當知道具體位置偶爾發生錯誤,又無法解決時
這時可以利用xcode自帶的try 來處理,避免程序崩退。
2.2.不知道具體位置,監聽常用錯誤,發送到服務器
這裡我們需要利用到兩個框架。 兩個第三方框架的,使用按具體的情況來應對
都可以在github上搜到
1.UncaughtExceptionHandler
可以檢測出常見錯誤,並友好的提示用戶 例如
1.NSArray、NSDictionary、NSString、KVC等問題引起的閃退。
2.解決NSObject performSelector找不到selector引起的閃退。
使用方法:
1、首先需要在appDelegate中使用InstallUncaughtExceptionHandler()用於監聽
2、添加UncaughtExceptionHandler這個類
iOS SDK提供的函數是NSSetUncaughtExceptionHandler來進行異常處理。但是無法處理內存訪問錯誤、重復釋放等錯誤,因為這些錯誤發送的SIGNAL。所以需要處理這些SIGNAL
效果在Demo裡可以來檢測。
2.DurexKit安全工具包
可以阻止程序崩潰,並且可以自己寫段邏輯在後台攔截到異常信息,發送至服務器,讓程序從容運行。
缺點:用戶沒用提示,操作回滾。
使用方法:導入即可
#import "DurexKit.h"
使用Category,參數經過判斷後才能執行方法,再將原生拋異常的方法替換,所以不需要修改任何已有的代碼,僅import工具包的頭文件,即可解決部分異常問題。
1、NSArray、NSDictionary、NSString、KVC等問題引起的閃退。
2、解決NSObject performSelector找不到selector引起的閃退。
1.1.將文件夾 "DurexKit" 添加到項目中;
1.2.#import "DurexKit.h"
1.3.無需修改項目中的任何代碼。