m
ios已發布應用中對異常資訊捕獲和處理
ios開發中我們會遇到程式丟擲異常退出的情況,如果是在除錯的過程中,異常的資訊是一目了然,但是如果是在已經發布的程式中,獲取異常的資訊有時候是比較困難的。
ios提供了異常發生的處理api,我們在程式啟動的時候可以新增這樣的handler,這樣的程式發生異常的時候就可以對這一部分的資訊進行必要的處理,適時的反饋給開發者。
不足的地方是,並不是所有的程式崩潰都是由於發生可以捕捉的異常的,有些時候是因為記憶體等一些其他的錯誤導致程式的崩潰,這樣的資訊是不在這裡體現的。
其實還有很多的處理的辦法。
l 比如可以在程式下一次起來的時候讀取這個異常檔案發生到服務端。
l 或者直接就是在處理**中用openurl的方式(mailto:)呼叫傳送郵件的方式,將異常資訊直接變成郵件傳送到指定位址。
以下是完整的**實現。
使用場景示例:
#pragma mark -
- (bool
nsdictionary
*)launchoptions
基本介面展示:
#import
@inte***ce
nduncaughtexceptionhandler : nsobject
+ (void
)setdefaulthandler;
+ (nsuncaughtexceptionhandler*)gethandler;
@end
//還可以選擇設定自定義的
handler
,讓使用者取選擇
介面實現展示
#import
"nduncaughtexceptionhandler.h"
return
[nssearchpathfordirectoriesindomains
(nsdocumentdirectory
, nsuserdomainmask
, yes
) lastobject];}
void
uncaughtexceptionhandler(
n***ception
*exception)
@implementation
nduncaughtexceptionhandler
-(nsstring
return
[nssearchpathfordirectoriesindomains
(nsdocumentdirectory
, nsuserdomainmask
, yes
) lastobject];}
+ (void
)setdefaulthandler
+ (nsuncaughtexceptionhandler*)gethandler
@end
異常崩潰報告:
**********===異常崩潰報告**********===
name:
nsrangeexception
reason:
*** -[nsarray objectatindex:]: index 1 beyond bounds [0 .. 0]
callstacksymbols:
0 corefoundation 0x02393919 __exceptionpreprocess + 185
1 libobjc.a.dylib 0x024e15de objc_exception_throw + 47
2 corefoundation 0x0238958c -[__nsarrayi objectatindex:] + 236
9 graphicsservices 0x02bf9afa purpleeventcallback + 1578
10 corefoundation 0x02374dc4 __cfrunloop_is_calling_out_to_a_source1_perform_function__ + 52
11 corefoundation 0x022d5737 __cfrunloopdosource1 + 215
12 corefoundation 0x022d29c3 __cfrunlooprun + 979
13 corefoundation 0x022d2280 cfrunlooprunspecific + 208
14 corefoundation 0x022d21a1 cfrunloopruninmode + 97
17 uncaughte 0x00002228 main + 102
18 uncaughte 0x000021b9 start + 53
本文出自 「arthurchen」 部落格,請務必保留此出處
iOS已發布應用中對異常資訊捕獲和處理
ios開發中我們會遇到程式丟擲異常退出的情況,如果是在除錯的過程中,異常的資訊是一目了然,但是如果是在已經發布的程式中,獲取異常的資訊有時候是比較困難的。ios提供了異常發生的處理api,我們在程式啟動的時候可以新增這樣的handler,這樣的程式發生異常的時候就可以對這一部分的資訊進行必要的處理,...
iOS已發布應用中對異常資訊捕獲和處理
ios開發中我們會遇到程式丟擲異常退出的情況,如果是在除錯的過程中,異常的資訊是一目了然,但是如果是在已經發布的程式中,獲取異常的資訊有時候是比較困難的。ios提供了異常發生的處理api,我們在程式啟動的時候可以新增這樣的handler,這樣的程式發生異常的時候就可以對這一部分的資訊進行必要的處理,...
iOS已發布應用中對異常資訊捕獲和處理
ios已發布應用中對異常資訊捕獲和處理 ios開發中我們會遇到程式丟擲異常退出的情況,如果是在除錯的過程中,異常的資訊是一目了然,但是如果是在已經發布的程式中,獲取異常的資訊有時候是比較困難的。ios提供了異常發生的處理api,我們在程式啟動的時候可以新增這樣的handler,這樣的程式發生異常的時...