首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >类型类型中的“String”不是“Exception”类型的子类型。

类型类型中的“String”不是“Exception”类型的子类型。
EN

Stack Overflow用户
提问于 2022-08-05 12:36:31
回答 2查看 229关注 0票数 0

我使用dartz包从一个方法返回不同的类型,但问题是我不能返回异常。以下代码如下:

代码语言:javascript
复制
      class CatPhotoApi {
        String endpoint = 'api.thecatapi.com';
        Future<Either<Exception, Map<String, dynamic>>> getRandomCatPhoto() async {
          try {
            final queryParameters = {
              "api_key": "example key",
            };
            final uri = Uri.https(endpoint, "/v1/images/search", queryParameters);
            final response = await http.get(uri);
            return Right(response.body as Map<String, dynamic>);
          } catch (e) {
            // The error occurs here:
            return Left(e as Exception);
          }
        }
      }
EN

回答 2

Stack Overflow用户

发布于 2022-08-05 12:49:36

发生错误是因为'e‘是一个字符串,您试图将它转换为异常。只要删除"as Exception“,您就会返回一个字符串

票数 1
EN

Stack Overflow用户

发布于 2022-08-05 12:46:20

创建一个抽象类,如下所示:

代码语言:javascript
复制
abstract class Failure  {
  final String message;

  const Failure(this.message);
}

扩展抽象类,如下所示:

代码语言:javascript
复制
class ServerFailure extends Failure {
  const ServerFailure(message) : super(message);

}

最后,抛出如下所示的异常

代码语言:javascript
复制
return Left(ServerFailure(e.toString()));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73249888

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档