You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
51 lines
1.6 KiB
51 lines
1.6 KiB
1 year ago
|
//
|
||
|
// NdUncaughtExceptionHandler.m
|
||
|
// tongxin
|
||
|
//
|
||
|
// Created by ecell on 2021/12/24.
|
||
|
// Copyright © 2021 xTT. All rights reserved.
|
||
|
//
|
||
|
|
||
|
#import "NdUncaughtExceptionHandler.h"
|
||
|
|
||
|
|
||
|
NSString *applicationDocumentsDirectory() {
|
||
|
return [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES) lastObject];
|
||
|
}
|
||
|
|
||
|
void UncaughtExceptionHandler(NSException *exception) {
|
||
|
NSArray *arr = [exception callStackSymbols];
|
||
|
NSString *reason = [exception reason];
|
||
|
NSString *name = [exception name];
|
||
|
|
||
|
NSString *url = [NSString stringWithFormat:@"=============异常崩溃报告=============\nname:\n%@\nreason:\n%@\ncallStackSymbols:\n%@",
|
||
|
name,reason,[arr componentsJoinedByString:@"\n"]];
|
||
|
|
||
|
NSLog(@"%@",url);
|
||
|
|
||
|
NSString *path = [applicationDocumentsDirectory()stringByAppendingPathComponent:@"Exception.txt"];
|
||
|
|
||
|
[url writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:nil];
|
||
|
|
||
|
//除了可以选择写到应用下的某个文件,通过后续处理将信息发送到服务器等
|
||
|
//还可以选择调用发送邮件的的程序,发送信息到指定的邮件地址
|
||
|
//或者调用某个处理程序来处理这个信息
|
||
|
}
|
||
|
|
||
|
@implementation NdUncaughtExceptionHandler
|
||
|
|
||
|
-(NSString *)applicationDocumentsDirectory {
|
||
|
return [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES) lastObject];
|
||
|
}
|
||
|
|
||
|
+ (void)setDefaultHandler{
|
||
|
NSSetUncaughtExceptionHandler (&UncaughtExceptionHandler);
|
||
|
}
|
||
|
|
||
|
+ (NSUncaughtExceptionHandler*)getHandler {
|
||
|
return NSGetUncaughtExceptionHandler();
|
||
|
}
|
||
|
|
||
|
|
||
|
@end
|