Initial commit
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
//
|
||||
// IfishUncaughtExceptionHandler.m
|
||||
// Ifish
|
||||
//
|
||||
// Created by imac on 17/2/28.
|
||||
// Copyright © 2017年 lianlian. All rights reserved.
|
||||
//
|
||||
|
||||
#import "IfishUncaughtExceptionHandler.h"
|
||||
|
||||
|
||||
NSString *applicationDocumentsDirectory(){
|
||||
return [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
|
||||
}
|
||||
//崩溃时的回调函数
|
||||
void UncaughtExceptionHandler(NSException *exception){
|
||||
NSArray *arr = [exception callStackSymbols];
|
||||
// 崩溃的原因 可以有崩溃的原因(数组越界,字典nil,调用未知方法...) 崩溃的控制器以及方法
|
||||
NSString *reason = [exception reason];
|
||||
NSString *name = [exception name];
|
||||
NSString * url = [NSString stringWithFormat:@"========异常错误报告========\nname:%@\nreason:\n%@\ncallStackSymbols:\n%@",name,reason,[arr componentsJoinedByString:@"\n"]];
|
||||
NSString *path = [applicationDocumentsDirectory() stringByAppendingString:@"Exception.txt"];
|
||||
[url writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:nil];
|
||||
|
||||
}
|
||||
|
||||
@implementation IfishUncaughtExceptionHandler
|
||||
|
||||
- (NSString *)applicationDocumentsDirectory {
|
||||
return [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
|
||||
}
|
||||
|
||||
+ (void)setDefaultHandler {
|
||||
NSSetUncaughtExceptionHandler(&UncaughtExceptionHandler);
|
||||
}
|
||||
|
||||
+ (NSUncaughtExceptionHandler *)getHandler {
|
||||
return NSGetUncaughtExceptionHandler();
|
||||
}
|
||||
|
||||
+ (void)TakeException:(NSException *)exception {
|
||||
NSArray * arr = [exception callStackSymbols];
|
||||
NSString * reason = [exception reason];
|
||||
NSString * name = [exception name];
|
||||
NSString * url = [NSString stringWithFormat:@"========异常错误报告========\nname:%@\nreason:\n%@\ncallStackSymbols:\n%@",name,reason,[arr componentsJoinedByString:@"\n"]];
|
||||
NSString * path = [applicationDocumentsDirectory() stringByAppendingPathComponent:@"Exception.txt"];
|
||||
[url writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:nil];
|
||||
}
|
||||
|
||||
@end
|
||||
Reference in New Issue
Block a user