In DefaultStorageRpc (and also other services as DefaultBigQueryRpc) we have code handling the translation of IOException to service specific exceptions:
privatestaticBigQueryExceptiontranslate(IOExceptionexception) {
BigQueryExceptiontranslated;
if (exceptioninstanceofGoogleJsonResponseException
&& ((GoogleJsonResponseException) exception).getDetails() != null) {
translated = translate(((GoogleJsonResponseException) exception).getDetails());
} else {
translated =
newBigQueryException(BigQueryException.UNKNOWN_CODE, exception.getMessage(), false);
}
translated.initCause(exception);
returntranslated;
}
privatestaticBigQueryExceptiontranslate(GoogleJsonErrorexception) {
booleanretryable = RETRYABLE_CODES.contains(exception.getCode());
returnnewBigQueryException(exception.getCode(), exception.getMessage(), retryable);
}Part of this logic should be moved to BaseServiceException
In
DefaultStorageRpc(and also other services asDefaultBigQueryRpc) we have code handling the translation ofIOExceptionto service specific exceptions:Part of this logic should be moved to
BaseServiceException