小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
引言
使用bugly上报自定义错误信息的应用场景:调用接口时如果返回了错误时需要记录下请求报文和设备号等数据,实时发送到控制台查看。
I、自定义错误信息监控
需求:调用接口时返回了错误时记录下请求报文(String格式)、设备号数据,实时发送到控制台查看
1.1 bugly上报自定义错误(iOS)
/**
* @brief 上报自定义错误
*
* @param category 类型(Cocoa=3,CSharp=4,JS=5,Lua=6)
* @param aName 名称
* @param aReason 错误原因
* @param aStackArray 堆栈
* @param info 附加数据
* @param terminate 上报后是否退出应用进程
*/
+ (void)reportExceptionWithCategory:(NSUInteger)category
name:(NSString *)aName
reason:(NSString *)aReason
callStack:(NSArray *)aStackArray
extraInfo:(NSDictionary *)info
terminateApp:(BOOL)terminate;
[Bugly reportExceptionWithCategory:3 name:exception.name reason:[NSString stringWithFormat:@"%@ 崩溃位置:%@",exception.reason,exception.userInfo[@"location"]] callStack:@[exception.userInfo[@"callStackSymbols"]] extraInfo:exception.userInfo terminateApp:NO]; }];
1.2 bugly上报自定义错误(android)
- 上报固定日志信息
//需求:应用调用接口时如果返回了错误,这时需要记录下请求报文(String格式)和设备号等数据,实时发送到控制台查看。
CrashReport.postCatchedException(new Throwable("日志内容:"));
- 使用Exception进行数据上报
CrashReport.postCatchedException(e);
- 查看自定义错误
再 bugly 后台对应的app ->异常上报 - 错误分析中查看相应的日志信息,也可以现在高级搜索
1.3 Q&A
如果+load方法中的代码出现了crash,crash监控SDK(bugly)能监控到? 答: 不会
因为在程序执行 Main 函数之前,就会执行 load 方法和 clang attribute 的 constructor 修饰函数 因此+load方法中的代码出现了crash时,还没创建 the application object 和 the application delegate 及 sets up the event cycle.就更没执行
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(nullable NSDictionary<UIApplicationLaunchOptionsKey, id> *)launchOptions API_AVAILABLE(ios(3.0));
初始化bugly
see also
更多资讯和服务请关注#小程序:iOS逆向
,只为你呈现有价值的信息,专注于移动端技术研究领域。