HarmonyOS 鸿蒙Next中使用ErrorManager捕获异常
HarmonyOS 鸿蒙Next中使用ErrorManager捕获异常 https://developer.huawei.com/consumer/cn/doc/harmonyos-faqs-V5/faqs-arkts-81-V5
Index.ets
@Entry
@Component
struct Index {
@State message: string = '捕获异常';
build() {
Row() {
Column() {
Button(this.message)
.onClick(() => {
let tempList = ['0', '1'];
tempList[5].toString();
})
}
.width('100%')
}
.height('100%')
}
}
EntryAbility.ets中:
import { AbilityConstant, errorManager, UIAbility, Want } from '@kit.AbilityKit';
import { hilog } from '@kit.PerformanceAnalysisKit';
import { window } from '@kit.ArkUI';
let callback: errorManager.ErrorObserver = {
onUnhandledException: (errMsg) => {
console.log('产生未捕获异常时的回调,onUnhandledException:', errMsg);
},
onException: (errorObj) => {
console.log('产生异常上报JS层时的回调,onException');
console.log('onException, name: ', errorObj.name);
console.log('onException, message: ', errorObj.message);
if (typeof (errorObj.stack) === 'string') {
console.log('onException, stack: ', errorObj.stack);
}
}
}
let abilityWant: Want;
let registerId = -1;
export default class EntryAbility extends UIAbility {
onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {
console.log('[Demo] EntryAbility onCreate');
registerId = errorManager.on('error', callback);
abilityWant = want;
console.log('registerId:', registerId);
}
onDestroy(): void {
console.log('[Demo] EntryAbility onDestroy');
errorManager.off('error', registerId, (result) => {
console.log('[Demo] result' + result.code + ';' + result.message);
});
}
// ...
}
更多关于HarmonyOS 鸿蒙Next中使用ErrorManager捕获异常的实战教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS Next中,ErrorManager是用于异常捕获的核心类。通过ErrorManager.on(‘error’)注册监听器,可以捕获应用运行时的JavaScript异常。使用方式为在代码中设置错误监听,当发生异常时触发回调并获取错误信息。ErrorManager提供异步错误处理机制,适用于ArkTS开发场景。
更多关于HarmonyOS 鸿蒙Next中使用ErrorManager捕获异常的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS Next中,ErrorManager提供了异常捕获机制,通过注册回调函数处理JS层的异常。你的代码示例展示了正确的使用方式:在EntryAbility的onCreate中注册error事件监听,并在onDestroy中取消注册,以避免内存泄漏。
当Index.ets中的按钮点击触发数组越界异常时,ErrorManager会通过onException回调捕获异常信息,包括异常名称、消息和堆栈。这有助于调试和错误处理,确保应用稳定性。注意区分onUnhandledException(未处理异常)和onException(异常上报)的使用场景。