diff --git a/interfaces/kits/js/src/mod_fs/ani/ets/@ohos.file.fs.ets b/interfaces/kits/js/src/mod_fs/ani/ets/@ohos.file.fs.ets index 8c855301bfa58a234a9be063a6354c69687efa2a..9af8e43d8b674b2708e2f0d710541b248d11f8a9 100644 --- a/interfaces/kits/js/src/mod_fs/ani/ets/@ohos.file.fs.ets +++ b/interfaces/kits/js/src/mod_fs/ani/ets/@ohos.file.fs.ets @@ -427,26 +427,18 @@ function readText(filePath: string, options?: ReadTextOptions): Promise if (options === undefined) { let promise = taskpool.execute(FileIoImpl.readTextSync, filePath); promise.then((ret: NullishType): void => { - if (ret === null || ret === undefined) { - let err = new BusinessError(); - err.code = -1; - reject(err); - } else { - let r = ret as string; - resolve(r); - } + let r = ret as string; + resolve(r); + }).catch((e: BusinessError): void => { + reject(e); }); } else { let promise = taskpool.execute(FileIoImpl.readTextSync, filePath, options); promise.then((ret: NullishType): void => { - if (ret === null || ret === undefined) { - let err = new BusinessError(); - err.code = -1; - reject(err); - } else { - let r = ret as string; - resolve(r); - } + let r = ret as string; + resolve(r); + }).catch((e: BusinessError): void => { + reject(e); }); } }); @@ -455,30 +447,22 @@ function readText(filePath: string, options?: ReadTextOptions): Promise function readText(filePath: string, callback: AsyncCallback): void { let promise = taskpool.execute(FileIoImpl.readTextSync, filePath); promise.then((ret: NullishType): void => { - let err = new BusinessError(); - if (ret === null || ret === undefined) { - err.code = -1; - callback(err, ''); - } else { - err.code = 0; - let r = ret as string; - callback(err, r); - } + let e = new BusinessError(0, ""); + let r = ret as string; + callback(e, r); + }).catch((e: BusinessError): void => { + callback(e, ""); }); } function readText(filePath: string, options: ReadTextOptions, callback: AsyncCallback): void { let promise = taskpool.execute(FileIoImpl.readTextSync, filePath, options); promise.then((ret: NullishType): void => { - let err = new BusinessError(); - if (ret === null || ret === undefined) { - err.code = -1; - callback(err, ''); - } else { - err.code = 0; - let r = ret as string; - callback(err, r); - } + let e = new BusinessError(0, ""); + let r = ret as string; + callback(e, r); + }).catch((e: BusinessError): void => { + callback(e, ""); }); } diff --git a/interfaces/kits/js/src/mod_fs/properties/ani/read_text_ani.cpp b/interfaces/kits/js/src/mod_fs/properties/ani/read_text_ani.cpp index 2c1c64d8af4f9b6bad14dc2f527a84589b1185f3..bd7dbd550d52456add39a3b2440e79bbb78f94c9 100644 --- a/interfaces/kits/js/src/mod_fs/properties/ani/read_text_ani.cpp +++ b/interfaces/kits/js/src/mod_fs/properties/ani/read_text_ani.cpp @@ -17,6 +17,7 @@ #include #include "ani_helper.h" +#include "error_handler.h" #include "filemgmt_libhilog.h" #include "read_text_core.h" #include "type_converter.h" @@ -70,18 +71,22 @@ ani_string ReadTextAni::ReadTextSync( auto [succOpt, options] = ToReadTextOptions(env, obj); if (!succOpt) { HILOGE("Ivalid options"); + ErrorHandler::Throw(env, EINVAL); return nullptr; } auto [succPath, path] = TypeConverter::ToUTF8String(env, filePath); if (!succPath) { HILOGE("Invalid Path"); + ErrorHandler::Throw(env, EINVAL); return nullptr; } auto ret = ReadTextCore::DoReadText(path, options); if (!ret.IsSuccess()) { HILOGE("DoReadText failed"); + const auto &err = ret.GetError(); + ErrorHandler::Throw(env, err); return nullptr; } @@ -90,6 +95,7 @@ ani_string ReadTextAni::ReadTextSync( auto [succ, result] = TypeConverter::ToAniString(env, res); if (!succ) { HILOGE("Create ani_string error"); + ErrorHandler::Throw(env, UNKNOWN_ERR); return nullptr; } return result;