diff --git a/frameworks/ets/ani/ability_manager/src/ets_query_erms_observer.cpp b/frameworks/ets/ani/ability_manager/src/ets_query_erms_observer.cpp index 8c16be68e0..37bdc0e248 100644 --- a/frameworks/ets/ani/ability_manager/src/ets_query_erms_observer.cpp +++ b/frameworks/ets/ani/ability_manager/src/ets_query_erms_observer.cpp @@ -97,7 +97,8 @@ void EtsQueryERMSObserver::CallCallback(ani_object callback, const AtomicService if (resultCode == ERR_OK) { aniObject = EtsErrorUtil::CreateError(env, AbilityErrorCode::ERROR_OK); } else { - aniObject = EtsErrorUtil::CreateErrorByNativeErr(env, resultCode); + aniObject = EtsErrorUtil::CreateErrorByNativeErr(env, resultCode, "", + GetInnerErrorMsg(AbilityInnerErrorMsg::QUERY_ATOMIC_SERVICE_STARTUP_RULE_FAILED)); } AppExecFwk::AsyncCallback(env, callback, aniObject, nullptr); AppExecFwk::DetachAniEnv(etsVm_, isAttachThread); diff --git a/frameworks/js/napi/ability_manager/js_ability_manager.cpp b/frameworks/js/napi/ability_manager/js_ability_manager.cpp index 195cc06d51..5177e79e82 100644 --- a/frameworks/js/napi/ability_manager/js_ability_manager.cpp +++ b/frameworks/js/napi/ability_manager/js_ability_manager.cpp @@ -877,7 +877,8 @@ private: auto ret = AbilityManagerClient::GetInstance()->RestartSelfAtomicService(token); if (ret != ERR_OK) { TAG_LOGE(AAFwkTag::ABILITYMGR, "resatrt atomic service failed: %{public}d", ret); - ThrowErrorByNativeErr(env, ret); + napi_throw(env, CreateJsErrorByNativeErr(env, ret, "", + GetInnerErrorMsg(AbilityInnerErrorMsg::RESTART_SELF_ATOMIC_SERVICE_FAILED))); } return CreateJsUndefined(env); } diff --git a/frameworks/native/ability/native/ability_business_error/ability_business_error.cpp b/frameworks/native/ability/native/ability_business_error/ability_business_error.cpp index ebc38c962e..e491cd6ece 100644 --- a/frameworks/native/ability/native/ability_business_error/ability_business_error.cpp +++ b/frameworks/native/ability/native/ability_business_error/ability_business_error.cpp @@ -230,6 +230,10 @@ constexpr const char* ERROR_MSG_RESTORE_WINDOW_STAGE_FAILED = "Internal error. Failed to restore the window stage. Check the local storage object and try again."; constexpr const char* ERROR_MSG_WRAP_ABILITY_RESULT_FAILED = "Internal error. Failed to create the ability result. Check the returned Want and try again."; +constexpr const char* ERROR_MSG_QUERY_ATOMIC_SERVICE_STARTUP_RULE_FAILED = + "Internal error. Failed to query the atomic service startup rule. Try again later."; +constexpr const char* ERROR_MSG_RESTART_SELF_ATOMIC_SERVICE_FAILED = + "Internal error. Failed to restart the current atomic service. Try again later."; constexpr const char* ERROR_MSG_SERVICE_UNAVAILABLE = "Internal error. Service unavailable. Try again later."; constexpr const char* ERROR_MSG_OPERATION_FAILED = @@ -547,9 +551,11 @@ static std::unordered_map INNER_ERROR_MSG_BY_ {AbilityInnerErrorMsg::OPERATION_FAILED, ERROR_MSG_OPERATION_FAILED}, {AbilityInnerErrorMsg::RESTORE_WINDOW_STAGE_FAILED, ERROR_MSG_RESTORE_WINDOW_STAGE_FAILED}, {AbilityInnerErrorMsg::WRAP_ABILITY_RESULT_FAILED, ERROR_MSG_WRAP_ABILITY_RESULT_FAILED}, + {AbilityInnerErrorMsg::QUERY_ATOMIC_SERVICE_STARTUP_RULE_FAILED, + ERROR_MSG_QUERY_ATOMIC_SERVICE_STARTUP_RULE_FAILED}, + {AbilityInnerErrorMsg::RESTART_SELF_ATOMIC_SERVICE_FAILED, ERROR_MSG_RESTART_SELF_ATOMIC_SERVICE_FAILED}, {AbilityInnerErrorMsg::CONNECT_AGENT_EXTENSION_FAILED, ERROR_MSG_CONNECT_AGENT_EXTENSION_FAILED}, {AbilityInnerErrorMsg::AGENT_EXTENSION_CONNECTION_ENDED, ERROR_MSG_AGENT_EXTENSION_CONNECTION_ENDED}, - {AbilityInnerErrorMsg::DISCONNECT_AGENT_EXTENSION_NOT_EXIST, ERROR_MSG_DISCONNECT_AGENT_EXTENSION_NOT_EXIST}, {AbilityInnerErrorMsg::TRANSFER_EXTENSION_DATA_FAILED, ERROR_MSG_TRANSFER_EXTENSION_DATA_FAILED}, {AbilityInnerErrorMsg::UI_WINDOW_NULL, ERROR_MSG_UI_WINDOW_NULL}, {AbilityInnerErrorMsg::RELOAD_IN_MODAL_RESULT_NULL, ERROR_MSG_RELOAD_IN_MODAL_RESULT_NULL}, @@ -630,7 +636,7 @@ std::string GetAgentManagerErrorMsg(int32_t errCode, AgentManagerErrorOperation } if (errCode == CONNECTION_NOT_EXIST) { if (operation == AgentManagerErrorOperation::DISCONNECT_AGENT_EXTENSION) { - return GetInnerErrorMsg(AbilityInnerErrorMsg::DISCONNECT_AGENT_EXTENSION_NOT_EXIST); + return ERROR_MSG_DISCONNECT_AGENT_EXTENSION_NOT_EXIST; } if (operation == AgentManagerErrorOperation::COMPLETE_LOW_CODE_AGENT) { return GetInnerErrorMsg(AbilityInnerErrorMsg::OPERATION_FAILED); diff --git a/frameworks/native/ability/native/js_query_erms_observer.cpp b/frameworks/native/ability/native/js_query_erms_observer.cpp index 9a4ba1ec6c..4e8e13679c 100644 --- a/frameworks/native/ability/native/js_query_erms_observer.cpp +++ b/frameworks/native/ability/native/js_query_erms_observer.cpp @@ -90,7 +90,8 @@ void JsQueryERMSObserver::CallPromise(napi_deferred deferred, const AtomicServic napi_resolve_deferred(env_, deferred, result); return; } - napi_value error = CreateJsError(env_, GetJsErrorCodeByNativeError(resultCode)); + napi_value error = CreateJsErrorByNativeErr(env_, resultCode, "", + GetInnerErrorMsg(AbilityInnerErrorMsg::QUERY_ATOMIC_SERVICE_STARTUP_RULE_FAILED)); napi_reject_deferred(env_, deferred, error); } @@ -132,4 +133,4 @@ napi_value JsQueryERMSObserver::CreateJsAtomicServiceStartupRule(napi_env env, return handleEscape.Escape(object); } } // namespace AbilityRuntime -} // namespace OHOS \ No newline at end of file +} // namespace OHOS diff --git a/interfaces/kits/native/ability/native/ability_business_error/ability_business_error.h b/interfaces/kits/native/ability/native/ability_business_error/ability_business_error.h index f1cda84faa..b9dcb505d6 100644 --- a/interfaces/kits/native/ability/native/ability_business_error/ability_business_error.h +++ b/interfaces/kits/native/ability/native/ability_business_error/ability_business_error.h @@ -342,9 +342,10 @@ enum class AbilityInnerErrorMsg { OPERATION_FAILED, RESTORE_WINDOW_STAGE_FAILED, WRAP_ABILITY_RESULT_FAILED, + QUERY_ATOMIC_SERVICE_STARTUP_RULE_FAILED, + RESTART_SELF_ATOMIC_SERVICE_FAILED, CONNECT_AGENT_EXTENSION_FAILED, AGENT_EXTENSION_CONNECTION_ENDED, - DISCONNECT_AGENT_EXTENSION_NOT_EXIST, TRANSFER_EXTENSION_DATA_FAILED, UI_WINDOW_NULL, RELOAD_IN_MODAL_RESULT_NULL, diff --git a/test/unittest/ability_business_error_test/ability_business_error_test.cpp b/test/unittest/ability_business_error_test/ability_business_error_test.cpp index 01cb99a511..fa49c3a2d2 100644 --- a/test/unittest/ability_business_error_test/ability_business_error_test.cpp +++ b/test/unittest/ability_business_error_test/ability_business_error_test.cpp @@ -160,13 +160,14 @@ HWTEST_F(AbilityBusinessErrorTest, GetInnerErrorMsg_0100, TestSize.Level2) "Internal error. Operation failed. Try again later."); EXPECT_EQ(GetInnerErrorMsg(AbilityInnerErrorMsg::RESTORE_WINDOW_STAGE_FAILED), "Internal error. Failed to restore the window stage. Check the local storage object and try again."); + EXPECT_EQ(GetInnerErrorMsg(AbilityInnerErrorMsg::QUERY_ATOMIC_SERVICE_STARTUP_RULE_FAILED), + "Internal error. Failed to query the atomic service startup rule. Try again later."); + EXPECT_EQ(GetInnerErrorMsg(AbilityInnerErrorMsg::RESTART_SELF_ATOMIC_SERVICE_FAILED), + "Internal error. Failed to restart the current atomic service. Try again later."); EXPECT_EQ(GetInnerErrorMsg(AbilityInnerErrorMsg::CONNECT_AGENT_EXTENSION_FAILED), "Internal error. Failed to connect to the agent extension ability. Verify the target and try again."); EXPECT_EQ(GetInnerErrorMsg(AbilityInnerErrorMsg::AGENT_EXTENSION_CONNECTION_ENDED), "Internal error. The agent extension connection ended before it was ready. Connect again."); - EXPECT_EQ(GetInnerErrorMsg(AbilityInnerErrorMsg::DISCONNECT_AGENT_EXTENSION_NOT_EXIST), - "Internal error. The agent extension connection does not exist. " - "Use an AgentProxy returned by connectAgentExtensionAbility."); EXPECT_EQ(GetInnerErrorMsg(AbilityInnerErrorMsg::TRANSFER_EXTENSION_DATA_FAILED), "Internal error. Failed to transfer extension data to the window. Try again later."); EXPECT_EQ(GetInnerErrorMsg(AbilityInnerErrorMsg::UI_WINDOW_NULL), @@ -189,7 +190,8 @@ HWTEST_F(AbilityBusinessErrorTest, GetAgentManagerErrorMsg_0100, TestSize.Level2 GetInnerErrorMsg(AbilityInnerErrorMsg::SERVICE_UNAVAILABLE)); EXPECT_EQ(GetAgentManagerErrorMsg(AAFwk::CONNECTION_NOT_EXIST, AgentManagerErrorOperation::DISCONNECT_AGENT_EXTENSION), - GetInnerErrorMsg(AbilityInnerErrorMsg::DISCONNECT_AGENT_EXTENSION_NOT_EXIST)); + "Internal error. The agent extension connection does not exist. " + "Use an AgentProxy returned by connectAgentExtensionAbility."); EXPECT_EQ(GetAgentManagerErrorMsg(AAFwk::ERR_MAX_AGENT_CONNECTIONS_REACHED, AgentManagerErrorOperation::CONNECT_AGENT_EXTENSION), GetErrorMsg(AbilityErrorCode::ERROR_CODE_MAX_CONNECTIONS_REACHED));