handleException<T extends Object> method
Implementation
Future<BaseCallBack<AppException, BaseResponse>> handleException<T extends Object>(
Future<Response<dynamic>> Function() handler,
{String endpoint = ''}) async {
try {
final res = await handler();
return Success(
BaseResponse(
statusCode: res.statusCode ?? 200,
data: res.data,
statusMessage: res.statusMessage,
),
);
} catch (e) {
String message = '';
String identifier = '';
int statusCode = 0;
log(e.runtimeType.toString());
switch (e.runtimeType) {
case TimeoutException:
e as TimeoutException;
message = S.current.text_timeout_exception;
statusCode = AppApi.timeoutErrorCode;
identifier = 'Socket Exception ${e.message}\n at $endpoint';
break;
case DioException:
e as DioException;
message = e.response?.data?['message'] ?? S.current.text_unknown_error;
statusCode = AppApi.dioErrorCode;
identifier = 'DioException ${e.message} \nat $endpoint';
break;
default:
message = S.current.text_unknown_error;
statusCode = AppApi.unknownErrorCode;
identifier = 'Unknown error ${e.toString()}\n at $endpoint';
}
return Error(
AppException(
message: message,
statusCode: statusCode,
identifier: identifier,
),
);
}
}