如何解决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 举报,一经查实,本站将立刻删除。