diff --git a/packages/wyatt_architecture/lib/src/domain/usecases/usecase.dart b/packages/wyatt_architecture/lib/src/domain/usecases/usecase.dart index ee6a2c26..893e962b 100644 --- a/packages/wyatt_architecture/lib/src/domain/usecases/usecase.dart +++ b/packages/wyatt_architecture/lib/src/domain/usecases/usecase.dart @@ -43,23 +43,20 @@ abstract class UseCase /// Supports the result of the main scenario and integrates /// some alternative scenarios if necessary. @override - FutureOrResult execute(Parameters? parameters) => - Result.tryCatchAsync( - () async { - await onStart(parameters); - final response = await call(parameters); - if (response.isErr) { - await onError(response.err); - } else if (response.isOk && response.ok != null) { - await _onSuccess(response.ok as ReturnType); - } - - return response.ok!; - }, - (error) => ClientException( - error.toString(), - ), - ); + FutureOrResult execute(Parameters? parameters) async { + try { + await onStart(parameters); + final response = await call(parameters); + if (response.isErr) { + await onError(response.err); + } else if (response.isOk && response.ok != null) { + await _onSuccess(response.ok as ReturnType); + } + return response; + } catch (e) { + return Err(ClientException(e.toString())); + } + } } /// Abtstract classic usecase.