小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
引言
使用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










