在我们的程序中,系统会出现各种各样的错误,我们要把错误抛出去,统一处理。
应用运行出现报错后,自动上传错误日志到服务器。
需要使用 axios 把故障日程上传到服务器。
错误处理代码
let errorManagerId = -1
export default class EntryAbility extends UIAbility {
onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {
// 注册错误观测器,出现错误时,应用不会闪退
errorManagerId = errorManager.on("error", {
// 当应用产生未捕获的异常时的回调。
onUnhandledException: async () => {
// 获取错误日志
const message= await FaultLogger.query(FaultLogger.FaultType.JS_CRASH);
// 发送 POST 请求,上报第一条错误日志
// 接口文档:https://apifox.com/apidoc/shared-575c0269-1ed9-4ffa-be46-bd5361822f36/
await axiosInstance({
method: 'POST',
url: '/log/fault/report/single',
data: message[0]
})
// 上传成功提醒
promptAction.showToast({ message: '出现未知错误,已自动上报' })
},
});
}
onDestroy(): void {
// 应用销毁 解除 errorManager 注册
errorManager.off("error", errorManagerId);
}
}