原理:
crash时保存到userDefault
程序启动时上报
func setUpErrorTest()
{
//错误处理
let err:String? = NSUserDefaults.standardUserDefaults().objectForKey("error.log") as? String
print(err)
if (err != nil && err != "")
{
let url1 = "http://ip:port/project/report.action"
print(url1)
}
NSSetUncaughtExceptionHandler { (exception:NSException) in
//异常的堆栈信息
let stackArray:NSArray = exception.callStackSymbols
//出现异常的原因
let reason:NSString=exception.reason!
//异常名称
let name:NSString=exception.name
let exceptionInfo:NSString=NSString(format:"Exceptionreason:%@nExceptionname:%@nExceptionstack:%",name,reason,stackArray)
print(exceptionInfo)
NSUserDefaults.standardUserDefaults().setObject(exceptionInfo, forKey:"error.log")
}
}

本文介绍了一种使用Swift语言在程序中实现异常捕捉与上报的方法。通过NSSetUncaughtExceptionHandler设置全局异常处理器,当程序遇到未捕获的异常时,会将异常信息(包括异常原因、异常名称及堆栈信息)保存至userDefault,并在下次应用启动时进行上报。
973

被折叠的 条评论
为什么被折叠?



