Dart エラー「Bad state: No element ListMixin.firstWhere」が発生した場合の対処法
Dartで、エラー「Bad state: No element ListMixin.firstWhere」が発生した場合の対処法を記述してます。「firstWhere」で条件が一致するものがなかった場合に発生します。
環境
- OS windows11 home
- Dart 2.18.1
エラー全文
以下のコードを実行時に発生。
void main() {
var list = ['aaa', 'bbb', 'ccc', 'bbb', 'aaa'];
print(list.firstWhere((v) => v.startsWith('f')));
}
エラー全文
Unhandled exception:
Bad state: No element
#0 ListMixin.firstWhere (dart:collection/list.dart:167:5)
#1 main (file:///c:/sample/main.dart:4:14)
#2 _delayEntrypointInvocation.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:297:19)
#3 _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:192:12)
原因
「firstWhere」で条件が一致するものがない場合はエラーとなってしまいます。
対処法
「orElse」で条件に一致するものがなかった場合に返す値を指定します。
void main() {
var list = ['aaa', 'bbb', 'ccc', 'bbb', 'aaa'];
print(list.firstWhere((v) => v.startsWith('f'),orElse: () => '存在しません'));
// 存在しません
}
-
前の記事
Flutter 画面遷移を行う 2023.03.31
-
次の記事
kotlin 少数以下の切り上げを行う 2023.03.31
コメントを書く