iOS- Exception異常處理


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.無需修改項目中的任何代碼。

 

 

作者: 清澈Saup
出處: http://www.cnblogs.com/qingche/
本文版權歸作者和博客園共有,歡迎轉載,但必須保留此段聲明,且在文章頁面明顯位置給出原文連接。

                                            

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM