mirror of
https://github.com/doublecmd/doublecmd.git
synced 2026-06-21 09:58:13 +00:00
UPD: MacCloud: step-61: improve error handing
This commit is contained in:
parent
5b2c3b9334
commit
e2ac4dd768
4 changed files with 30 additions and 14 deletions
|
|
@ -171,7 +171,7 @@ var
|
|||
httpResult: TMiniHttpResult;
|
||||
httpError: NSError;
|
||||
httpErrorDescription: String;
|
||||
dropBoxMessage: String;
|
||||
cloudDriverMessage: String;
|
||||
|
||||
procedure processHttpError;
|
||||
begin
|
||||
|
|
@ -189,32 +189,32 @@ var
|
|||
|
||||
procedure processDropBox401Error;
|
||||
begin
|
||||
if dropBoxMessage.IndexOf('access_token') >= 0 then
|
||||
raise ECloudDriverTokenException.Create( dropBoxMessage );
|
||||
raise ECloudDriverException.Create( dropBoxMessage );
|
||||
if cloudDriverMessage.IndexOf('access_token') >= 0 then
|
||||
raise ECloudDriverTokenException.Create( cloudDriverMessage );
|
||||
raise ECloudDriverException.Create( cloudDriverMessage );
|
||||
end;
|
||||
|
||||
procedure processDropBox409Error;
|
||||
begin
|
||||
if dropBoxMessage.IndexOf('not_found') >= 0 then
|
||||
raise EFileNotFoundException.Create( dropBoxMessage );
|
||||
if dropBoxMessage.IndexOf('conflict') >= 0 then
|
||||
raise ECloudDriverConflictException.Create( dropBoxMessage );
|
||||
raise ECloudDriverPermissionException.Create( dropBoxMessage );
|
||||
if cloudDriverMessage.IndexOf('not_found') >= 0 then
|
||||
raise EFileNotFoundException.Create( cloudDriverMessage );
|
||||
if cloudDriverMessage.IndexOf('conflict') >= 0 then
|
||||
raise ECloudDriverConflictException.Create( cloudDriverMessage );
|
||||
raise ECloudDriverPermissionException.Create( cloudDriverMessage );
|
||||
end;
|
||||
|
||||
procedure processDropBoxError;
|
||||
begin
|
||||
dropBoxMessage:= cloudDriverResult.resultMessage;
|
||||
cloudDriverMessage:= cloudDriverResult.resultMessage;
|
||||
|
||||
if (httpResult.resultCode>=200) and (httpResult.resultCode<=299) then
|
||||
Exit;
|
||||
case httpResult.resultCode of
|
||||
401: processDropBox401Error;
|
||||
409: processDropBox409Error;
|
||||
403: raise ECloudDriverPermissionException.Create( dropBoxMessage );
|
||||
429: raise ECloudDriverRateLimitException.Create( dropBoxMessage );
|
||||
else raise ECloudDriverException.Create( dropBoxMessage );
|
||||
403: raise ECloudDriverPermissionException.Create( cloudDriverMessage );
|
||||
429: raise ECloudDriverRateLimitException.Create( cloudDriverMessage );
|
||||
else raise ECloudDriverException.Create( cloudDriverMessage );
|
||||
end;
|
||||
end;
|
||||
|
||||
|
|
|
|||
|
|
@ -26,6 +26,7 @@ type
|
|||
ECloudDriverException = class( Exception );
|
||||
ECloudDriverTokenException = class( ECloudDriverException );
|
||||
ECloudDriverConflictException = class( ECloudDriverException );
|
||||
ECloudDriverQuotaException = class( ECloudDriverException );
|
||||
ECloudDriverPermissionException = class( ECloudDriverException );
|
||||
ECloudDriverRateLimitException = class( ECloudDriverException );
|
||||
|
||||
|
|
|
|||
|
|
@ -167,7 +167,20 @@ var
|
|||
|
||||
if (httpResult.resultCode>=200) and (httpResult.resultCode<=299) then
|
||||
Exit;
|
||||
raise ECloudDriverException.Create( cloudDriverMessage );
|
||||
case httpResult.resultCode of
|
||||
401:
|
||||
raise ECloudDriverTokenException.Create( cloudDriverMessage );
|
||||
403, 507:
|
||||
raise ECloudDriverQuotaException.Create( cloudDriverMessage );
|
||||
404:
|
||||
raise EFileNotFoundException.Create( cloudDriverMessage );
|
||||
409:
|
||||
raise ECloudDriverConflictException.Create( cloudDriverMessage );
|
||||
429:
|
||||
raise ECloudDriverRateLimitException.Create( cloudDriverMessage );
|
||||
else
|
||||
raise ECloudDriverException.Create( cloudDriverMessage );
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure logException( const e: Exception );
|
||||
|
|
|
|||
|
|
@ -166,6 +166,8 @@ begin
|
|||
Result:= FS_FILE_NOTFOUND
|
||||
else if e is EInOutError then
|
||||
Result:= FS_FILE_WRITEERROR
|
||||
else if e is ECloudDriverConflictException then
|
||||
Result:= FS_FILE_EXISTS
|
||||
else
|
||||
Result:= FS_FILE_NOTSUPPORTED;
|
||||
end;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue