如何在flutter for循环中创建异常

vq8itlhq  于 2023-02-09  发布在  Flutter
关注(0)|答案(4)|浏览(108)

我需要for中的项具有操作,但最后一项除外,它将具有不同的操作
一个不起作用的例子:

for (var i = 0; i < 10; i++) {
  print('1 - 9');

  if (i.last) {
    print('last item');
  }
}
apeeds0o

apeeds0o1#

你可以把method放在for循环的condition部分,下面是这样的例子:

void main() {
  const limit = 10;
  for(int i =0 ;
      () {
        if(i < limit && i < limit-1) {
          doActionA(i);
          return true;
        }
        else if(i < limit){
          doActionB(i);
          return true;
        }
        return false;
      }()
      
      ; i++);
}

void doActionA(int i){
  print('Not last $i');
}

void doActionB(int i) {
  print('last $i');
}

输出

Not last 0
Not last 1
Not last 2
Not last 3
Not last 4
Not last 5
Not last 6
Not last 7
Not last 8
last 9
7cwmlq89

7cwmlq892#

试试这个:

for (var i = 0; i < 10; i++) {
  print('0 - 8');

  if (i == 9) {
    print('last item');
  }
}
xwmevbvl

xwmevbvl3#

你可以试试这个

for (var i = 0; i < 10; i++) {
 print('1 - 9');

 if (i==9) {
    print('last item');
    throw Exception("Your message");
 }
 }
4xrmg8kj

4xrmg8kj4#

这也是可能的,您可以将代码段粘贴到DartPad中并使用它

void main() {
  try {
    for (var i = 0; i < 10; i++) {
      if (i == 3) {
        print('item $i');
        throw 'customError';
      } else {
        print('item $i');
      }
    }
  } catch (e) {
    if (e == 'customError') {
      print('You caught your custom error \n $e');
    } else {
      print('You caught some other error');
    }
  }
}

希望能有所帮助

相关问题