diff --git a/frameworks/js/napi/ability_manager/js_ability_manager.cpp b/frameworks/js/napi/ability_manager/js_ability_manager.cpp index 91ef385375..96456fcee9 100644 --- a/frameworks/js/napi/ability_manager/js_ability_manager.cpp +++ b/frameworks/js/napi/ability_manager/js_ability_manager.cpp @@ -152,15 +152,15 @@ private: } if (!AppExecFwk::IsTypeForNapiValue(env, argv[INDEX_ONE], napi_object)) { TAG_LOGE(AAFwkTag::ABILITYMGR, "Invalid param."); - ThrowError(env, AbilityErrorCode::ERROR_CODE_INVALID_PARAM); + ThrowInvalidParamError(env, "Parse param observer failed, must be a AbilityForegroundStateObserver"); return CreateJsUndefined(env); } std::string type = ParseParamType(env, argc, argv); if (type == ON_OFF_TYPE_ABILITY_FOREGROUND_STATE) { - OnOnAbilityForeground(env, argc, argv); + return OnOnAbilityForeground(env, argc, argv); } - + ThrowInvalidParamError(env, "Parse param type failed, must be a string, value must be abilityForegroundState"); return CreateJsUndefined(env); } @@ -198,14 +198,15 @@ private: } if (argc == ARGC_TWO && !AppExecFwk::IsTypeForNapiValue(env, argv[INDEX_ONE], napi_object)) { TAG_LOGE(AAFwkTag::ABILITYMGR, "Invalid param."); - ThrowError(env, AbilityErrorCode::ERROR_CODE_INVALID_PARAM); + ThrowInvalidParamError(env, "Parse param observer failed, must be a AbilityForegroundStateObserver"); return CreateJsUndefined(env); } std::string type = ParseParamType(env, argc, argv); if (type == ON_OFF_TYPE_ABILITY_FOREGROUND_STATE) { - OnOffAbilityForeground(env, argc, argv); + return OnOffAbilityForeground(env, argc, argv); } + ThrowInvalidParamError(env, "Parse param type failed, must be a string, value must be abilityForegroundState"); return CreateJsUndefined(env); } @@ -237,19 +238,19 @@ private: std::string assertSessionStr; if (!ConvertFromJsValue(env, argv[INDEX_ZERO], assertSessionStr) || !CheckIsNumString(assertSessionStr)) { TAG_LOGE(AAFwkTag::ABILITYMGR, "Convert session id error."); - ThrowError(env, AbilityErrorCode::ERROR_CODE_INVALID_PARAM); + ThrowInvalidParamError(env, "Parse param sessionId failed, must be a string"); return CreateJsUndefined(env); } uint64_t assertSessionId = std::stoull(assertSessionStr); if (assertSessionId == 0) { TAG_LOGE(AAFwkTag::ABILITYMGR, "Convert session id failed."); - ThrowError(env, AbilityErrorCode::ERROR_CODE_INVALID_PARAM); + ThrowInvalidParamError(env, "Parse param sessionId failed, value must not be equal to zero"); return CreateJsUndefined(env); } int32_t userStatus; if (!ConvertFromJsValue(env, argv[INDEX_ONE], userStatus)) { TAG_LOGE(AAFwkTag::ABILITYMGR, "Convert status failed."); - ThrowError(env, AbilityErrorCode::ERROR_CODE_INVALID_PARAM); + ThrowInvalidParamError(env, "Parse param status failed, must be a UserStatus"); return CreateJsUndefined(env); } @@ -340,7 +341,7 @@ private: int upperLimit = -1; if (!ConvertFromJsValue(env, info.argv[0], upperLimit)) { #ifdef ENABLE_ERRCODE - ThrowError(env, AbilityErrorCode::ERROR_CODE_INVALID_PARAM); + ThrowInvalidParamError(env, "Parse param upperLimit failed, must be a number"); #endif return CreateJsUndefined(env); } @@ -391,7 +392,7 @@ private: AppExecFwk::Configuration changeConfig; if (!UnwrapConfiguration(env, info.argv[0], changeConfig)) { #ifdef ENABLE_ERRCODE - ThrowError(env, AbilityErrorCode::ERROR_CODE_INVALID_PARAM); + ThrowInvalidParamError(env, "Parse param config failed, must be a Configuration"); #else complete = [](napi_env env, NapiAsyncTask& task, int32_t status) { task.Reject(env, CreateJsError(env, ERR_INVALID_VALUE, "config is invalid.")); @@ -456,12 +457,12 @@ private: { TAG_LOGI(AAFwkTag::ABILITYMGR, "%{public}s is called", __FUNCTION__); if (info.argc < ARGC_ONE) { - ThrowError(env, AbilityErrorCode::ERROR_CODE_INVALID_PARAM); + ThrowTooFewParametersError(env); return CreateJsUndefined(env); } int32_t missionId = -1; if (!ConvertFromJsValue(env, info.argv[INDEX_ZERO], missionId)) { - ThrowError(env, AbilityErrorCode::ERROR_CODE_INVALID_PARAM); + ThrowInvalidParamError(env, "Parse param missionId failed, must be a number"); return CreateJsUndefined(env); } napi_value lastParam = info.argc > ARGC_ONE ? info.argv[INDEX_ONE] : nullptr; @@ -509,7 +510,7 @@ private: int reqCode = 0; if (!ConvertFromJsValue(env, info.argv[1], reqCode)) { TAG_LOGE(AAFwkTag::ABILITYMGR, "Get requestCode param error"); - ThrowError(env, AbilityErrorCode::ERROR_CODE_INVALID_PARAM); + ThrowInvalidParamError(env, "Parse param requestCode failed, must be a number"); break; } @@ -517,7 +518,7 @@ private: int resultCode = ERR_OK; if (!AppExecFwk::UnWrapAbilityResult(env, info.argv[0], resultCode, want)) { TAG_LOGE(AAFwkTag::ABILITYMGR, "Unrwrap abilityResult param error"); - ThrowError(env, AbilityErrorCode::ERROR_CODE_INVALID_PARAM); + ThrowInvalidParamError(env, "Parse param parameter failed, must be a AbilityResult"); break; } @@ -576,26 +577,26 @@ private: napi_status status = OHOS::AbilityRuntime::IsStageContext(env, info.argv[0], stageMode); if (status != napi_ok || !stageMode) { TAG_LOGE(AAFwkTag::ABILITYMGR, "it is not a stage mode"); - ThrowError(env, AbilityErrorCode::ERROR_CODE_INVALID_PARAM); + ThrowInvalidParamError(env, "Parse param context failed, must be stageMode"); return CreateJsUndefined(env); } auto context = OHOS::AbilityRuntime::GetStageModeContext(env, info.argv[0]); if (context == nullptr) { TAG_LOGE(AAFwkTag::ABILITYMGR, "get context failed"); - ThrowError(env, AbilityErrorCode::ERROR_CODE_INVALID_PARAM); + ThrowInvalidParamError(env, "Parse param context failed, must not be nullptr"); return CreateJsUndefined(env); } auto uiAbilityContext = AbilityRuntime::Context::ConvertTo(context); if (uiAbilityContext == nullptr) { TAG_LOGE(AAFwkTag::ABILITYMGR, "convert to UIAbility context failed"); - ThrowError(env, AbilityErrorCode::ERROR_CODE_INVALID_PARAM); + ThrowInvalidParamError(env, "Parse param context failed, must be UIAbilityContext"); return CreateJsUndefined(env); } std::string appId; if (!ConvertFromJsValue(env, info.argv[1], appId)) { TAG_LOGE(AAFwkTag::ABILITYMGR, "OnOpenAtomicService, parse appId failed."); - ThrowError(env, AbilityErrorCode::ERROR_CODE_INVALID_PARAM); + ThrowInvalidParamError(env, "Parse param appId failed, must be a string"); return CreateJsUndefined(env); } diff --git a/frameworks/js/napi/app/js_app_manager/js_app_manager.cpp b/frameworks/js/napi/app/js_app_manager/js_app_manager.cpp index 59c6e2e81c..08a66685d1 100644 --- a/frameworks/js/napi/app/js_app_manager/js_app_manager.cpp +++ b/frameworks/js/napi/app/js_app_manager/js_app_manager.cpp @@ -233,7 +233,8 @@ private: } if (!CheckOnOffType(env, argc, argv)) { - ThrowError(env, AbilityErrorCode::ERROR_CODE_INVALID_PARAM); + ThrowInvalidParamError(env, "Parse param type failed, must be a string," + "value must be applicationState, appForegroundState or abilityFirstFrameState"); return CreateJsUndefined(env); } @@ -279,7 +280,7 @@ private: } if (!AppExecFwk::IsTypeForNapiValue(env, argv[INDEX_ONE], napi_object)) { TAG_LOGE(AAFwkTag::APPMGR, "Invalid param"); - ThrowError(env, AbilityErrorCode::ERROR_CODE_INVALID_PARAM); + ThrowInvalidParamError(env, "Parse param observer failed, must be a ApplicationStateObserver"); return CreateJsUndefined(env); } std::vector bundleNameList; @@ -322,7 +323,7 @@ private: } if (!AppExecFwk::IsTypeForNapiValue(env, argv[INDEX_ONE], napi_object)) { TAG_LOGE(AAFwkTag::APPMGR, "Invalid param."); - ThrowError(env, AbilityErrorCode::ERROR_CODE_INVALID_PARAM); + ThrowInvalidParamError(env, "Parse param observer failed, must be a AppForegroundStateObserver"); return CreateJsUndefined(env); } if (observerForeground_ == nullptr) { @@ -385,7 +386,7 @@ private: if (!AppExecFwk::IsTypeForNapiValue(env, argv[INDEX_ONE], napi_object) || !IsJSFunctionExist(env, argv[INDEX_ONE], "onAbilityFirstFrameDrawn")) { TAG_LOGE(AAFwkTag::APPMGR, "Invalid param."); - ThrowError(env, AbilityErrorCode::ERROR_CODE_INVALID_PARAM); + ThrowInvalidParamError(env, "Parse param observer failed, must be a AbilityFirstFrameStateObserver"); return CreateJsUndefined(env); } std::string bundleName; @@ -393,7 +394,7 @@ private: if (!IsParasNullOrUndefined(env, argv[INDEX_TWO]) && (!ConvertFromJsValue(env, argv[INDEX_TWO], bundleName) || bundleName.empty())) { TAG_LOGE(AAFwkTag::APPMGR, "Get bundleName error or bundleName empty!"); - ThrowError(env, AbilityErrorCode::ERROR_CODE_INVALID_PARAM); + ThrowInvalidParamError(env, "Parse param bundleName failed, must be a string"); return CreateJsUndefined(env); } } @@ -439,7 +440,7 @@ private: (!AppExecFwk::IsTypeForNapiValue(env, argv[INDEX_ONE], napi_object) || !IsJSFunctionExist(env, argv[INDEX_ONE], "onAbilityFirstFrameDrawn"))) { TAG_LOGE(AAFwkTag::APPMGR, "Invalid param."); - ThrowError(env, AbilityErrorCode::ERROR_CODE_INVALID_PARAM); + ThrowInvalidParamError(env, "Parse param observer failed, must be a AbilityFirstFrameStateObserver"); return CreateJsUndefined(env); } } @@ -463,20 +464,21 @@ private: return CreateJsUndefined(env); } if (!CheckOnOffType(env, argc, argv)) { - ThrowError(env, AbilityErrorCode::ERROR_CODE_INVALID_PARAM); + ThrowInvalidParamError(env, "Parse param type failed, must be a string," + "value must be applicationState, appForegroundState or abilityFirstFrameState"); return CreateJsUndefined(env); } int64_t observerId = -1; napi_get_value_int64(env, argv[INDEX_ONE], &observerId); if (observer_ == nullptr) { - TAG_LOGE(AAFwkTag::APPMGR, "observer_ is nullpter, please register first"); - ThrowError(env, AbilityErrorCode::ERROR_CODE_INVALID_PARAM); + TAG_LOGE(AAFwkTag::APPMGR, "observer_ is nullptr, please register first"); + ThrowInvalidParamError(env, "observer is nullptr, please register first"); return CreateJsUndefined(env); } if (!observer_->FindObserverByObserverId(observerId)) { TAG_LOGE(AAFwkTag::APPMGR, "not find observer, observer:%{public}d", static_cast(observerId)); - ThrowError(env, AbilityErrorCode::ERROR_CODE_INVALID_PARAM); + ThrowInvalidParamError(env, "not find observerId"); return CreateJsUndefined(env); } TAG_LOGD(AAFwkTag::APPMGR, "find observer exist observer:%{public}d", static_cast(observerId)); @@ -518,7 +520,7 @@ private: int32_t observerId = -1; if (!ConvertFromJsValue(env, argv[INDEX_ONE], observerId)) { TAG_LOGE(AAFwkTag::APPMGR, "Parse observerId failed"); - ThrowError(env, AbilityErrorCode::ERROR_CODE_INVALID_PARAM); + ThrowInvalidParamError(env, "Parse param observerId failed, must be a number"); return CreateJsUndefined(env); } @@ -529,7 +531,7 @@ private: } if (!observerSync_->FindObserverByObserverId(observerId)) { TAG_LOGE(AAFwkTag::APPMGR, "not find observer, observer:%{public}d", static_cast(observerId)); - ThrowError(env, AbilityErrorCode::ERROR_CODE_INVALID_PARAM); + ThrowInvalidParamError(env, "not find observerId"); return CreateJsUndefined(env); } int32_t ret = appManager_->UnregisterApplicationStateObserver(observerSync_); @@ -553,7 +555,7 @@ private: } if (argc == ARGC_TWO && !AppExecFwk::IsTypeForNapiValue(env, argv[INDEX_ONE], napi_object)) { TAG_LOGE(AAFwkTag::APPMGR, "Invalid param."); - ThrowError(env, AbilityErrorCode::ERROR_CODE_INVALID_PARAM); + ThrowInvalidParamError(env, "Parse param observer failed, must be a AppForegroundStateObserver"); return CreateJsUndefined(env); } if (observerForeground_ == nullptr || appManager_ == nullptr) { @@ -666,7 +668,7 @@ private: std::string bundleName; if (!ConvertFromJsValue(env, argv[0], bundleName)) { TAG_LOGE(AAFwkTag::APPMGR, "get bundleName error!"); - ThrowError(env, AbilityErrorCode::ERROR_CODE_INVALID_PARAM); + ThrowInvalidParamError(env, "Parse param bundleName failed, must be a string"); return CreateJsUndefined(env); } @@ -705,7 +707,7 @@ private: std::string bundleName; if (!ConvertFromJsValue(env, argv[0], bundleName)) { TAG_LOGE(AAFwkTag::APPMGR, "get bundleName failed!"); - ThrowError(env, AbilityErrorCode::ERROR_CODE_INVALID_PARAM); + ThrowInvalidParamError(env, "Parse param bundleName failed, must be a string"); return CreateJsUndefined(env); } @@ -743,14 +745,14 @@ private: std::string bundleName; if (!ConvertFromJsValue(env, argv[0], bundleName)) { TAG_LOGE(AAFwkTag::APPMGR, "get bundleName wrong!"); - ThrowError(env, AbilityErrorCode::ERROR_CODE_INVALID_PARAM); + ThrowInvalidParamError(env, "Parse param bundleName failed, must be a string"); return CreateJsUndefined(env); } uint32_t versionCode = 0; if (!ConvertFromJsValue(env, argv[1], versionCode)) { TAG_LOGE(AAFwkTag::APPMGR, "get versionCode failed!"); - ThrowError(env, AbilityErrorCode::ERROR_CODE_INVALID_PARAM); + ThrowInvalidParamError(env, "Parse param versionCode failed, must be a number"); return CreateJsUndefined(env); } @@ -785,13 +787,13 @@ private: std::string bundleName; if (!ConvertFromJsValue(env, argv[0], bundleName)) { TAG_LOGE(AAFwkTag::APPMGR, "Parse bundleName failed"); - ThrowError(env, AbilityErrorCode::ERROR_CODE_INVALID_PARAM); + ThrowInvalidParamError(env, "Parse param bundleName failed, must be a string"); return CreateJsUndefined(env); } int32_t accountId = -1; if (!ConvertFromJsValue(env, argv[1], accountId)) { TAG_LOGE(AAFwkTag::APPMGR, "Parse userId failed"); - ThrowError(env, AbilityErrorCode::ERROR_CODE_INVALID_PARAM); + ThrowInvalidParamError(env, "Parse param accountId failed, must be a number"); return CreateJsUndefined(env); } @@ -871,7 +873,7 @@ private: int32_t pid; if (!ConvertFromJsValue(env, argv[0], pid)) { TAG_LOGE(AAFwkTag::APPMGR, "get pid failed"); - ThrowError(env, AbilityErrorCode::ERROR_CODE_INVALID_PARAM); + ThrowInvalidParamError(env, "Parse param pid failed, must be a number"); return CreateJsUndefined(env); } @@ -910,7 +912,7 @@ private: bool isPromiseType = false; if (!ConvertFromJsValue(env, argv[0], bundleName)) { TAG_LOGE(AAFwkTag::APPMGR, "First parameter must be string"); - ThrowError(env, AbilityErrorCode::ERROR_CODE_INVALID_PARAM); + ThrowInvalidParamError(env, "Parse param bundleName failed, must be a string"); return CreateJsUndefined(env); } if (argc == ARGC_ONE) { @@ -922,11 +924,11 @@ private: } else if (argc == ARGC_THREE) { if (!ConvertFromJsValue(env, argv[1], userId)) { TAG_LOGW(AAFwkTag::APPMGR, "Must input userid and use callback when argc is three."); - ThrowError(env, AbilityErrorCode::ERROR_CODE_INVALID_PARAM); + ThrowInvalidParamError(env, "Parse param userId failed, must be a number"); return CreateJsUndefined(env); } } else { - ThrowError(env, AbilityErrorCode::ERROR_CODE_INVALID_PARAM); + ThrowInvalidParamError(env, "The number of param exceeded"); return CreateJsUndefined(env); } @@ -963,7 +965,7 @@ private: std::string bundleName; if (!ConvertFromJsValue(env, argv[0], bundleName)) { TAG_LOGE(AAFwkTag::APPMGR, "Get bundle name wrong."); - ThrowError(env, AbilityErrorCode::ERROR_CODE_INVALID_PARAM); + ThrowInvalidParamError(env, "Parse param bundleName failed, must be a string"); return CreateJsUndefined(env); } diff --git a/frameworks/js/napi/js_mission_manager/mission_manager.cpp b/frameworks/js/napi/js_mission_manager/mission_manager.cpp index 4759f5644e..dcad35035d 100755 --- a/frameworks/js/napi/js_mission_manager/mission_manager.cpp +++ b/frameworks/js/napi/js_mission_manager/mission_manager.cpp @@ -146,7 +146,7 @@ private: } if (!CheckOnOffType(env, argc, argv)) { - ThrowError(env, AbilityErrorCode::ERROR_CODE_INVALID_PARAM); + ThrowInvalidParamError(env, "Parse param type failed, must be a string, value must be mission"); return CreateJsUndefined(env); } @@ -183,7 +183,7 @@ private: } if (!AppExecFwk::IsTypeForNapiValue(env, argv[1], napi_object)) { TAG_LOGE(AAFwkTag::MISSION, "Invalid param"); - ThrowError(env, AbilityErrorCode::ERROR_CODE_INVALID_PARAM); + ThrowInvalidParamError(env, "Parse param listener failed, must be a MissionListener"); return CreateJsUndefined(env); } @@ -230,14 +230,14 @@ private: } if (!CheckOnOffType(env, argc, argv)) { - ThrowError(env, AbilityErrorCode::ERROR_CODE_INVALID_PARAM); + ThrowInvalidParamError(env, "Parse param type failed, must be a string, value must be mission"); return CreateJsUndefined(env); } int32_t missionListenerId = -1; if (!ConvertFromJsValue(env, argv[ARGC_ONE], missionListenerId)) { TAG_LOGE(AAFwkTag::MISSION, "Parse missionListenerId failed"); - ThrowError(env, AbilityErrorCode::ERROR_CODE_INVALID_PARAM); + ThrowInvalidParamError(env, "Parse param listenerId failed, must be a number"); return CreateJsUndefined(env); } @@ -282,7 +282,7 @@ private: int32_t missionListenerId = -1; if (!ConvertFromJsValue(env, argv[INDEX_ONE], missionListenerId)) { TAG_LOGE(AAFwkTag::MISSION, "Parse missionListenerId failed"); - ThrowError(env, AbilityErrorCode::ERROR_CODE_INVALID_PARAM); + ThrowInvalidParamError(env, "Parse param listenerId failed, must be a number"); return CreateJsUndefined(env); } @@ -326,13 +326,13 @@ private: std::string deviceId; if (!ConvertFromJsValue(env, argv[0], deviceId)) { TAG_LOGE(AAFwkTag::MISSION, "Parse deviceId failed"); - ThrowError(env, AbilityErrorCode::ERROR_CODE_INVALID_PARAM); + ThrowInvalidParamError(env, "Parse param deviceId failed, must be a string"); return CreateJsUndefined(env); } int numMax = -1; if (!ConvertFromJsValue(env, argv[1], numMax)) { TAG_LOGE(AAFwkTag::MISSION, "Parse numMax failed"); - ThrowError(env, AbilityErrorCode::ERROR_CODE_INVALID_PARAM); + ThrowInvalidParamError(env, "Parse param numMax failed, must be a number"); return CreateJsUndefined(env); } @@ -366,13 +366,13 @@ private: std::string deviceId; if (!ConvertFromJsValue(env, argv[0], deviceId)) { TAG_LOGE(AAFwkTag::MISSION, "Parse deviceId failed"); - ThrowError(env, AbilityErrorCode::ERROR_CODE_INVALID_PARAM); + ThrowInvalidParamError(env, "Parse param deviceId failed, must be a string"); return CreateJsUndefined(env); } int32_t missionId = -1; if (!ConvertFromJsValue(env, argv[1], missionId)) { TAG_LOGE(AAFwkTag::MISSION, "Parse missionId failed"); - ThrowError(env, AbilityErrorCode::ERROR_CODE_INVALID_PARAM); + ThrowInvalidParamError(env, "Parse param missionId failed, must be a number"); return CreateJsUndefined(env); } @@ -467,13 +467,13 @@ private: if (!ConvertFromJsValue(env, argv[0], deviceId)) { TAG_LOGE(AAFwkTag::MISSION, "missionSnapshot: Parse deviceId failed"); - ThrowError(env, AbilityErrorCode::ERROR_CODE_INVALID_PARAM); + ThrowInvalidParamError(env, "Parse param deviceId failed, must be a string"); return false; } if (!ConvertFromJsValue(env, argv[1], missionId)) { TAG_LOGE(AAFwkTag::MISSION, "missionSnapshot: Parse missionId failed"); - ThrowError(env, AbilityErrorCode::ERROR_CODE_INVALID_PARAM); + ThrowInvalidParamError(env, "Parse param missionId failed, must be a number"); return false; } @@ -491,7 +491,7 @@ private: int32_t missionId = -1; if (!ConvertFromJsValue(env, argv[0], missionId)) { TAG_LOGE(AAFwkTag::MISSION, "OnLockMission Parse missionId failed"); - ThrowError(env, AbilityErrorCode::ERROR_CODE_INVALID_PARAM); + ThrowInvalidParamError(env, "Parse param missionId failed, must be a number"); return CreateJsUndefined(env); } @@ -524,7 +524,7 @@ private: int32_t missionId = -1; if (!ConvertFromJsValue(env, argv[0], missionId)) { TAG_LOGE(AAFwkTag::MISSION, "OnUnlockMission Parse missionId failed"); - ThrowError(env, AbilityErrorCode::ERROR_CODE_INVALID_PARAM); + ThrowInvalidParamError(env, "Parse param missionId failed, must be a number"); return CreateJsUndefined(env); } @@ -557,7 +557,7 @@ private: int32_t missionId = -1; if (!ConvertFromJsValue(env, argv[0], missionId)) { TAG_LOGE(AAFwkTag::MISSION, "OnClearMission Parse missionId failed"); - ThrowError(env, AbilityErrorCode::ERROR_CODE_INVALID_PARAM); + ThrowInvalidParamError(env, "Parse param missionId failed, must be a number"); return CreateJsUndefined(env); } @@ -611,7 +611,7 @@ private: int32_t missionId = -1; if (!ConvertFromJsValue(env, argv[0], missionId)) { TAG_LOGE(AAFwkTag::MISSION, "OnMoveMissionToFront Parse missionId failed"); - ThrowError(env, AbilityErrorCode::ERROR_CODE_INVALID_PARAM); + ThrowInvalidParamError(env, "Parse param missionId failed, must be a number"); return CreateJsUndefined(env); } decltype(argc) unwrapArgc = 1; @@ -654,7 +654,7 @@ private: napi_get_array_length(env, argv[0], &nativeArrayLen); if (nativeArrayLen == 0) { TAG_LOGE(AAFwkTag::MISSION, "OnMoveMissionsToForeground MissionId is null"); - ThrowError(env, AbilityErrorCode::ERROR_CODE_INVALID_PARAM); + ThrowInvalidParamError(env, "Parse param missionIds failed, the size of missionIds must above zero"); return CreateJsUndefined(env); } napi_value element = nullptr; @@ -663,7 +663,7 @@ private: napi_get_element(env, argv[0], i, &element); if (!ConvertFromJsValue(env, element, missionId)) { TAG_LOGE(AAFwkTag::MISSION, "OnMoveMissionsToForeground Parse missionId failed"); - ThrowError(env, AbilityErrorCode::ERROR_CODE_INVALID_PARAM); + ThrowInvalidParamError(env, "Parse param missionIds failed, missionId must be a number"); return CreateJsUndefined(env); } missionIds.push_back(missionId); @@ -674,7 +674,7 @@ private: if (argc > ARGC_ONE && AppExecFwk::IsTypeForNapiValue(env, argv[1], napi_number)) { if (!ConvertFromJsValue(env, argv[1], topMissionId)) { TAG_LOGE(AAFwkTag::MISSION, "OnMoveMissionsToForeground Parse topMissionId failed"); - ThrowError(env, AbilityErrorCode::ERROR_CODE_INVALID_PARAM); + ThrowInvalidParamError(env, "Parse param topMission failed, must be a number"); return CreateJsUndefined(env); } unwrapArgc++; @@ -713,7 +713,7 @@ private: napi_get_array_length(env, argv[0], &nativeArrayLen); if (nativeArrayLen == 0) { TAG_LOGE(AAFwkTag::MISSION, "OnMoveMissionsToBackground MissionId is null"); - ThrowError(env, AbilityErrorCode::ERROR_CODE_INVALID_PARAM); + ThrowInvalidParamError(env, "Parse param missionIds failed, the size of missionIds must above zero"); return CreateJsUndefined(env); } napi_value element = nullptr; @@ -722,7 +722,7 @@ private: napi_get_element(env, argv[0], i, &element); if (!ConvertFromJsValue(env, element, missionId)) { TAG_LOGE(AAFwkTag::MISSION, "OnMoveMissionsToBackground Parse topMissionId failed"); - ThrowError(env, AbilityErrorCode::ERROR_CODE_INVALID_PARAM); + ThrowInvalidParamError(env, "Parse param missionIds failed, missionId must be a number"); return CreateJsUndefined(env); } missionIds.push_back(missionId); diff --git a/frameworks/native/ability/native/js_service_extension_context.cpp b/frameworks/native/ability/native/js_service_extension_context.cpp index 5265d67ec9..42cf3daa7e 100644 --- a/frameworks/native/ability/native/js_service_extension_context.cpp +++ b/frameworks/native/ability/native/js_service_extension_context.cpp @@ -221,7 +221,6 @@ private: AAFwk::Want want; AAFwk::StartOptions startOptions; if (!CheckStartAbilityInputParam(env, info, want, startOptions, unwrapArgc)) { - ThrowError(env, AbilityErrorCode::ERROR_CODE_INVALID_PARAM); return CreateJsUndefined(env); } @@ -272,22 +271,26 @@ private: { if (info.argc != ARGC_TWO) { TAG_LOGE(AAFwkTag::SERVICE_EXT, "wrong arguments num"); + ThrowTooFewParametersError(env); return false; } if (!CheckTypeForNapiValue(env, info.argv[ARGC_ZERO], napi_string)) { TAG_LOGE(AAFwkTag::SERVICE_EXT, "link must be string"); + ThrowInvalidParamError(env, "Parse param link failed, must be a string"); return false; } if (!ConvertFromJsValue(env, info.argv[ARGC_ZERO], linkValue) || !CheckUrl(linkValue)) { TAG_LOGE(AAFwkTag::SERVICE_EXT, "link parameter invalid"); + ThrowInvalidParamError(env, "link parameter invalid"); return false; } if (CheckTypeForNapiValue(env, info.argv[INDEX_ONE], napi_object)) { TAG_LOGD(AAFwkTag::SERVICE_EXT, "OpenLinkOptions is used."); if (!AppExecFwk::UnwrapOpenLinkOptions(env, info.argv[INDEX_ONE], openLinkOptions, want)) { - TAG_LOGE(AAFwkTag::SERVICE_EXT, "openLinkOptions parse failed"); + TAG_LOGE(AAFwkTag::SERVICE_EXT, "OpenLinkOptions parse failed"); + ThrowInvalidParamError(env, "Parse param options failed, must be a OpenLinkOptions"); return false; } } @@ -307,7 +310,6 @@ private: if (!ParseOpenLinkParams(env, info, linkValue, openLinkOptions, want)) { TAG_LOGE(AAFwkTag::SERVICE_EXT, "parse openLink arguments failed"); - ThrowError(env, AbilityErrorCode::ERROR_CODE_INVALID_PARAM); return CreateJsUndefined(env); } @@ -361,7 +363,6 @@ private: AAFwk::Want want; AAFwk::StartOptions startOptions; if (!CheckStartAbilityInputParam(env, info, want, startOptions, unwrapArgc)) { - ThrowError(env, AbilityErrorCode::ERROR_CODE_INVALID_PARAM); return CreateJsUndefined(env); } @@ -396,11 +397,13 @@ private: AAFwk::Want& want, AAFwk::StartOptions& startOptions, size_t& unwrapArgc) const { if (info.argc < ARGC_ONE) { + ThrowTooFewParametersError(env); return false; } unwrapArgc = ARGC_ZERO; // Check input want if (!AppExecFwk::UnwrapWant(env, info.argv[INDEX_ZERO], want)) { + ThrowInvalidParamError(env, "Parse param want failed, must be a Want"); return false; } ++unwrapArgc; @@ -423,7 +426,6 @@ private: AAFwk::Want want; int32_t accountId = DEFAULT_INVAL_VALUE; if (!CheckStartAbilityByCallInputParam(env, info, want, accountId)) { - ThrowError(env, AbilityErrorCode::ERROR_CODE_INVALID_PARAM); return CreateJsUndefined(env); } @@ -463,6 +465,7 @@ private: napi_env env, NapiCallbackInfo& info, AAFwk::Want& want, int32_t& accountId) { if (!AppExecFwk::UnwrapWant(env, info.argv[INDEX_ZERO], want)) { + ThrowInvalidParamError(env, "Parse param want failed, must be a Want"); return false; } @@ -470,10 +473,12 @@ private: if (CheckTypeForNapiValue(env, info.argv[INDEX_ONE], napi_number)) { if (!ConvertFromJsValue(env, info.argv[1], accountId)) { TAG_LOGE(AAFwkTag::SERVICE_EXT, "check input param accountId failed"); + ThrowInvalidParamError(env, "Parse param accountId failed, must be a number"); return false; } } else { TAG_LOGE(AAFwkTag::SERVICE_EXT, "input parameter type invalid"); + ThrowInvalidParamError(env, "Parse param accountId failed, must be a number"); return false; } } @@ -574,7 +579,6 @@ private: AAFwk::Want want; int32_t accountId = 0; if (!CheckStartAbilityWithAccountInputParam(env, info, want, accountId, unwrapArgc)) { - ThrowError(env, AbilityErrorCode::ERROR_CODE_INVALID_PARAM); return CreateJsUndefined(env); } @@ -612,15 +616,18 @@ private: AAFwk::Want& want, int32_t& accountId, size_t& unwrapArgc) const { if (info.argc < ARGC_TWO) { + ThrowTooFewParametersError(env); return false; } unwrapArgc = ARGC_ZERO; // Check input want if (!AppExecFwk::UnwrapWant(env, info.argv[INDEX_ZERO], want)) { + ThrowInvalidParamError(env, "Parse param want failed, must be a Want"); return false; } ++unwrapArgc; if (!AppExecFwk::UnwrapInt32FromJS2(env, info.argv[INDEX_ONE], accountId)) { + ThrowInvalidParamError(env, "Parse param accountId failed, must be a number"); return false; } ++unwrapArgc; @@ -667,12 +674,14 @@ private: // Unwrap want and connection AAFwk::Want want; sptr connection = new JSServiceExtensionConnection(env); - if (!AppExecFwk::UnwrapWant(env, info.argv[0], want) || - !CheckConnectionParam(env, info.argv[1], connection, want)) { - ThrowError(env, AbilityErrorCode::ERROR_CODE_INVALID_PARAM); + if (!AppExecFwk::UnwrapWant(env, info.argv[0], want)) { + ThrowInvalidParamError(env, "Parse param want failed, must be a Want"); + return CreateJsUndefined(env); + } + if (!CheckConnectionParam(env, info.argv[1], connection, want)) { + ThrowInvalidParamError(env, "Parse param options failed, must be a ConnectOptions"); return CreateJsUndefined(env); } - int64_t connectId = connection->GetConnectionId(); auto innerErrorCode = std::make_shared(ERR_OK); auto execute = GetConnectAbilityExecFunc(want, connection, connectId, innerErrorCode); @@ -710,10 +719,12 @@ private: AAFwk::Want want; int32_t accountId = 0; sptr connection = new JSServiceExtensionConnection(env); - if (!AppExecFwk::UnwrapWant(env, info.argv[INDEX_ZERO], want) || - !AppExecFwk::UnwrapInt32FromJS2(env, info.argv[INDEX_ONE], accountId) || - !CheckConnectionParam(env, info.argv[INDEX_TWO], connection, want)) { - ThrowError(env, AbilityErrorCode::ERROR_CODE_INVALID_PARAM); + size_t unwrapArgc = 0; + if (!CheckStartAbilityWithAccountInputParam(env, info, want, accountId, unwrapArgc)) { + return CreateJsUndefined(env); + } + if (!CheckConnectionParam(env, info.argv[INDEX_TWO], connection, want)) { + ThrowInvalidParamError(env, "Parse param options failed, must be a ConnectOptions"); return CreateJsUndefined(env); } int64_t connectId = connection->GetConnectionId(); @@ -778,7 +789,7 @@ private: } int64_t connectId = -1; if (!AppExecFwk::UnwrapInt64FromJS2(env, info.argv[INDEX_ZERO], connectId)) { - ThrowError(env, AbilityErrorCode::ERROR_CODE_INVALID_PARAM); + ThrowInvalidParamError(env, "Parse param connection failed, must be a number"); return CreateJsUndefined(env); } @@ -845,7 +856,7 @@ private: } AAFwk::Want want; if (!AppExecFwk::UnwrapWant(env, info.argv[INDEX_ZERO], want)) { - ThrowError(env, AbilityErrorCode::ERROR_CODE_INVALID_PARAM); + ThrowInvalidParamError(env, "Parse param want failed, must be a Want"); return CreateJsUndefined(env); } @@ -882,9 +893,8 @@ private: } AAFwk::Want want; int32_t accountId = -1; - if (!AppExecFwk::UnwrapWant(env, info.argv[INDEX_ZERO], want) || - !AppExecFwk::UnwrapInt32FromJS2(env, info.argv[INDEX_ONE], accountId)) { - ThrowError(env, AbilityErrorCode::ERROR_CODE_INVALID_PARAM); + size_t unwrapArgc = 0; + if (!CheckStartAbilityWithAccountInputParam(env, info, want, accountId, unwrapArgc)) { return CreateJsUndefined(env); } @@ -921,7 +931,7 @@ private: } AAFwk::Want want; if (!AppExecFwk::UnwrapWant(env, info.argv[INDEX_ZERO], want)) { - ThrowError(env, AbilityErrorCode::ERROR_CODE_INVALID_PARAM); + ThrowInvalidParamError(env, "Parse param want failed, must be a Want"); return CreateJsUndefined(env); } @@ -958,10 +968,8 @@ private: } AAFwk::Want want; int32_t accountId = -1; - if (!AppExecFwk::UnwrapWant(env, info.argv[INDEX_ZERO], want) || - !AppExecFwk::UnwrapInt32FromJS2(env, info.argv[INDEX_ONE], accountId)) { - TAG_LOGD(AAFwkTag::SERVICE_EXT, "Failed, input parameter type invalid"); - ThrowError(env, AbilityErrorCode::ERROR_CODE_INVALID_PARAM); + size_t unwrapArgc = 0; + if (!CheckStartAbilityWithAccountInputParam(env, info, want, accountId, unwrapArgc)) { return CreateJsUndefined(env); } @@ -1000,7 +1008,7 @@ private: AAFwk::Want want; if (!AppExecFwk::UnwrapWant(env, info.argv[0], want)) { TAG_LOGE(AAFwkTag::SERVICE_EXT, "Failed to parse want!"); - ThrowError(env, AbilityErrorCode::ERROR_CODE_INVALID_PARAM); + ThrowInvalidParamError(env, "Parse param want failed, must be a Want"); return CreateJsUndefined(env); }