HarmonyOS中如何处理异常与错误管理?

HarmonyOS中如何处理异常与错误管理?

阅读 845
2 个回答

对于发生的 js crash 进行全局统一管控,存在两点好处:
方便解耦,无需反复处理不同地方的异常。
增强应用的健壮性,防止异常崩溃。
核心代码如下:

//EntryAbility.ets
onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {
  hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onCreate');
  //创建异常发生时的回调
  let observer: errorManager.ErrorObserver = {
    //onUnhandledException 回调,回调返回的对象为一个字符串
    onUnhandledException(errorMsg) {
      console.log('testTagonUnhandledException, errorMsg: ', errorMsg);
    },
    //onException 回调,回调返回的对象是一个包装好的对象,存在一些属性
    onException(errorObj) {
      console.log('testTagonException, name: ', errorObj.name);
      console.log('testTagonException, message: ', errorObj.message);
      if (typeof(errorObj.stack) ==='string') {
        console.log('testTagonException, stack: ', errorObj.stack);
      }
    }
    //以上两种回调唯一区别在于回调返回值是否封装为对象,无功能类的区别
  };
  let observerId = -1;
  //开启监听异常
  observerId = errorManager.on('error', observer);
}
  - 🔗 无
=====
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进