From accee66232f1aa6b4093f1719a0660fcedb10f31 Mon Sep 17 00:00:00 2001 From: zhangzezhong Date: Mon, 1 Sep 2025 20:15:22 +0800 Subject: [PATCH] fix createBusinessError Signed-off-by: zhangzezhong --- .../ets/ani/ani_common/src/ets_error_utils.cpp | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/frameworks/ets/ani/ani_common/src/ets_error_utils.cpp b/frameworks/ets/ani/ani_common/src/ets_error_utils.cpp index b4beaf86438..4710f72a87c 100644 --- a/frameworks/ets/ani/ani_common/src/ets_error_utils.cpp +++ b/frameworks/ets/ani/ani_common/src/ets_error_utils.cpp @@ -236,7 +236,7 @@ ani_object EtsErrorUtil::CreateError(ani_env *env, ani_int code, const std::stri return nullptr; } ani_method method = nullptr; - if ((status = env->Class_FindMethod(cls, "", "ILescompat/Error;:V", &method)) != ANI_OK) { + if ((status = env->Class_FindMethod(cls, "", ":V", &method)) != ANI_OK) { TAG_LOGE(AAFwkTag::ANI, "Class_FindMethod failed %{public}d", status); return nullptr; } @@ -246,10 +246,23 @@ ani_object EtsErrorUtil::CreateError(ani_env *env, ani_int code, const std::stri return nullptr; } ani_object obj = nullptr; - if ((status = env->Object_New(cls, method, &obj, code, error)) != ANI_OK) { + if ((status = env->Object_New(cls, method, &obj)) != ANI_OK) { TAG_LOGE(AAFwkTag::ANI, "Object_New failed %{public}d", status); return nullptr; } + if ((status = env->Object_SetFieldByName_Int(obj, "code", code)) != ANI_OK) { + TAG_LOGE(AAFwkTag::ANI, "Object_SetFieldByName_Int failed %{public}d", status); + return nullptr; + } + ani_string errMessage; + if ((status = env->String_NewUTF8(msg.c_str(), msg.size(), &errMessage)) != ANI_OK) { + TAG_LOGE(AAFwkTag::ANI, "String_NewUTF8 failed %{public}d", status); + return nullptr; + } + if ((status = env->Object_SetPropertyByName_Ref(obj, "message", errMessage)) != ANI_OK) { + TAG_LOGE(AAFwkTag::ANI, "Object_SetPropertyByName_Ref failed %{public}d", status); + return nullptr; + } return obj; } } // namespace AbilityRuntime -- Gitee