From 3811c177c08554c27d7cb7f9d17b2126e80ad4b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=94=E5=8F=BD=E5=92=8C=E7=8C=AA=E6=89=92?= Date: Thu, 20 Mar 2025 09:54:01 +0800 Subject: [PATCH] =?UTF-8?q?access=20=E5=A2=9E=E5=8A=A0=E5=BC=82=E5=B8=B8?= =?UTF-8?q?=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 兔叽和猪扒 Change-Id: I4688d984573f5f75fd26e2e9e1b2fb4a00b7bda1 --- .../js/src/mod_fs/ani/ets/@ohos.file.fs.ets | 45 +++++++------------ .../src/mod_fs/properties/ani/access_ani.cpp | 6 +++ 2 files changed, 21 insertions(+), 30 deletions(-) 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 35df4b3d..bb666915 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 @@ -21,28 +21,20 @@ function access(path: string, mode?: AccessModeType): Promise { return FileIoImpl.doAccessSync(path); }, path); promise.then((ret: NullishType) => { - if (ret === null || ret === undefined) { - let e = new BusinessError(); - e.code = -1; - reject(e); - } else { - let result = ret as boolean; - resolve(result); - } + let result = ret as boolean; + resolve(result); + }).catch((e: BusinessError): void => { + reject(e); }); } else { let promise = taskpool.execute((path: string, mode: AccessModeType): boolean => { return FileIoImpl.doAccessSync(path, mode); }, path, mode); promise.then((ret: NullishType) => { - if (ret === null || ret === undefined) { - let e = new BusinessError(); - e.code = -1; - reject(e); - } else { - let result = ret as boolean; - resolve(result); - } + let result = ret as boolean; + resolve(result); + }).catch((e: BusinessError): void => { + reject(e); }); } }); @@ -54,14 +46,11 @@ function access(path: string, callback: AsyncCallback): void { }, path); promise.then((ret: NullishType): void => { let e = new BusinessError(); - if (ret === null || ret === undefined) { - e.code = -1; - callback(e, false); - } else { - e.code = 0; - let result = ret as boolean; - callback(e, result); - } + e.code = 0; + let result = ret as boolean; + callback(e, result); + }).catch((e: BusinessError): void => { + callback(e, false); }); } @@ -69,14 +58,10 @@ function access(path: string, mode: AccessModeType, flag: AccessFlagType): Promi return new Promise((resolve: (result: boolean) => void, reject: (e: BusinessError) => void) => { let promise = taskpool.execute(FileIoImpl.doAccessSync, path, mode, flag); promise.then((ret: NullishType): void => { - if (ret === null || ret === undefined) { - let e = new BusinessError(); - e.code = -1; - reject(e); - } else { let result = ret as boolean; resolve(result); - } + }).catch((e: BusinessError): void => { + reject(e); }); }) } diff --git a/interfaces/kits/js/src/mod_fs/properties/ani/access_ani.cpp b/interfaces/kits/js/src/mod_fs/properties/ani/access_ani.cpp index e98af682..329e1162 100644 --- a/interfaces/kits/js/src/mod_fs/properties/ani/access_ani.cpp +++ b/interfaces/kits/js/src/mod_fs/properties/ani/access_ani.cpp @@ -16,6 +16,7 @@ #include "access_ani.h" #include "access_core.h" +#include "error_handler.h" #include "filemgmt_libhilog.h" #include "type_converter.h" @@ -80,12 +81,14 @@ ani_boolean AccessAni::AccessSync3( auto [succPath, pathStr] = TypeConverter::ToUTF8String(env, path); if (!succPath) { HILOGE("Invalid path"); + ErrorHandler::Throw(env, EINVAL); return ret; } auto [succMode, modeOp] = TypeConverter::EnumToInt32(env, mode); if (!succMode) { HILOGE("Invalid mode"); + ErrorHandler::Throw(env, EINVAL); return ret; } auto modeType = OptToAccessModeType(modeOp); @@ -93,6 +96,7 @@ ani_boolean AccessAni::AccessSync3( auto [succFlag, flagOpt] = TypeConverter::EnumToInt32(env, flag); if (!succFlag) { HILOGE("Invalid flag"); + ErrorHandler::Throw(env, EINVAL); return ret; } auto flagType = OptToAccessFlagType(flagOpt); @@ -106,6 +110,8 @@ ani_boolean AccessAni::AccessSync3( if (!fsRet.IsSuccess()) { HILOGE("DoAccess failed"); + const auto &err = fsRet.GetError(); + ErrorHandler::Throw(env, err); return false; } return fsRet.GetData().value(); -- Gitee