飞镖错误处理特定错误

时间:2018-04-10 05:48:01

标签: dart firebase-authentication flutter

我想处理Dart中可能发生的不同错误。 我正在使用try / catch,但想知道如何确定可能发生的不同错误。 例如,当没有网络连接时,我有这个错误:

PlatformException(Error 17020, FIRAuthErrorDomain, Network error (such as timeout, interrupted connection or unreachable host) has occurred.)

当用户名/密码不正确时出现此错误:

PlatformException(Error 17009, FIRAuthErrorDomain, The password is invalid or the user does not have a password.)

我想根据发生的错误采取不同的操作。 这里最好的方法是什么? 更新:使用以下方式结束!

import 'package:flutter/services.dart' show PlatformException;

try {
      //Something!

    } on PlatformException catch (e) {
      switch (e.code) {
        case "Error 17009":
          // handle
          break;
        case "Error 17020":
          // handle
          break;
        case "Error 17011":
          //handle
          break;
        default:
          throw new UnimplementedError(e.code);
      }
    }

1 个答案:

答案 0 :(得分:4)

我使用try / catchswitch / case

import 'package:flutter/services.dart' show PlatformException;


try {
  ...
} on PlatformException catch(e) {
  switch(e.code) {
    case '17009':
      // handle
      break;
    case '17020':
      // handle
      break;
    default:
      throw new UnimplementedError(error.code);
  }
}
相关问题