对于发生的 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); } - 🔗 无 =====
一、异常捕获与处理1.使用try-catch语句:在Java或Kotlin等编程语言中,可以通过try-catch语句来捕获并处理可能发生的异常。将可能抛出异常的代码块放在try块中,并在catch块中处理这些异常。2.重写onUnhandledException方法:HarmonyOS提供了onUnhandledException机制,用于捕获应用程序中未处理的异常。开发者可以在应用的入口Activity(在HarmonyOS中称为AbilitySlice)中重写这个方法,并在其中添加自己的异常处理逻辑。例如,可以记录异常信息、弹出错误提示框、尝试重启应用等。3.错误日志记录:当异常发生时,将异常信息记录到日志文件中。这有助于开发者在后续的分析和调试中快速定位问题。HarmonyOS提供了日志系统(如HiLog),方便开发者记录和分析日志。二、错误管理接口1.注册错误监听:HarmonyOS提供了错误监听(ErrorObserver)接口,允许开发者注册监听回调函数,以便在捕获到异常时接收通知。通过注册这个接口,开发者可以在异常发生时及时获得通知,并采取相应的处理措施。2.上报错误到开发者服务平台:当应用遇到无法处理的异常时,可以将错误日志和相关信息上报到开发者的服务平台。这样,开发者可以在远程收集和分析这些信息,以便更快地定位和解决问题。三、系统级异常处理1.系统异常处理机制:HarmonyOS本身也具备一系列的系统级异常处理机制,用于处理系统级的错误和异常。这些机制包括进程监控、资源回收、错误恢复等,以确保系统的稳定性和可靠性。2.分布式系统容错机制:对于分布式应用,HarmonyOS还提供了分布式系统容错机制,如进程复制、数据冗余、心跳检测、自动重试和回滚等。这些机制有助于在分布式环境中提高应用的容错能力和稳定性。
对于发生的 js crash 进行全局统一管控,存在两点好处:
方便解耦,无需反复处理不同地方的异常。
增强应用的健壮性,防止异常崩溃。
核心代码如下: