微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Dart 未处理异常:对空值使用的空检查运算符,堆栈跟踪:

如何解决Dart 未处理异常:对空值使用的空检查运算符,堆栈跟踪:

尽管我已尝试应用我在 SO 上看到的大部分建议更改,但到目前为止没有任何效果。我在这里遇到了这个常见的异常 - roleRaw!.map((roleJson) => RoleModel.fromJson(roleJson)).toList();

这是代码

class RoleRepository {

  final RoleService roleService;
  RoleRepository({required this.roleService});

  Future<List<RoleModel>> fetchRoles() async {
      final roleRaw = await roleService.fetchRoles();
      final jSonConvert =  roleRaw!.map((roleJson) => RoleModel.fromJson(roleJson)).toList();
      return jSonConvert;
  }
}

错误信息

[ERROR:Flutter/lib/ui/ui_dart_state.cc(199)] Unhandled Exception: Null check operator used on a null value
E/Flutter (20753): #0      RoleRepository.fetchRoles (package:etransfa/christdoes/bank/persistence/repository/role_repository.dart:11:35)
E/Flutter (20753): <asynchronous suspension>

我能做什么?

解决方法

你的方法 roleService.fetchRoles() 可以返回 null?在这种情况下,问题是当您使用空检查运算符 (!) 时,它会在值为空时抛出错误。

在使用之前尝试验证响应:

Future<List<RoleModel>> fetchRoles() async {
      final roleRaw = await roleService.fetchRoles();
      if (roleRaw != null) {
          final jSonConvert =  roleRaw!.map((roleJson) => 
          RoleModel.fromJson(roleJson)).toList();
          return jSonConvert;
      } else {
        // Handle null return here
      }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。