// - 1. 方法 在 main 函数中捕捉异常
#import <UIKit/UIKit.h>
#import "AppDelegate.h"
int main(int argc, char * argv[]) {
@try {
@autoreleasepool {
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
}
} @catch (NSException *exception) {
NSLog(@"%@", exception); // - 应该做的处理是把崩溃信息存储到本地的文件中, 下次打开程序时 上传到服务器.....
}
}
// - (因为 程序崩溃很快就关闭了程序 如果这时候做上传会有没有网络请求完成就退成程序的问题 所以为了避免这种情况 就直接在程序崩溃时写在本地 下次启动时候做网络请求)
// - 1. 方法 在 appDelegate中捕捉异常
void handException(NSException * exception){
NSDictionary * exc = @{
@"callStackSymbols" : [exception callStackSymbols],
@"reason" : [exception reason],
@"name" : [exception name]
};
/** 调用栈信息 */
[exception callStackSymbols];
/** 异常的描述 */
[exception reason];
/** 异常的名字 */
[exception name];
/** 把这个字典写入到本地 */
exc writeToFile:<#(nonnull NSString *)#> atomically:<#(BOOL)#>
}
/** 程序从杀死到接收到消息打开通知的操作 */
- (void)DYApplication:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
NSSetUncaughtExceptionHandler(handException);
}