Firebase 如何捕获2个平台异常错误(颤振)

Firebase 如何捕获2个平台异常错误(颤振),firebase,flutter,dart,firebase-authentication,Firebase,Flutter,Dart,Firebase Authentication,我有两个平台异常错误,一个是(电子邮件地址格式错误),另一个是(电子邮件地址已被其他帐户使用),我知道如何使用( 在PlatformException catch(err){}catch(err){})上,但如何同时捕获它们呢?您可以在 平台上的异常捕获(错误){code> 并比较err.code、err.message或err.details,这取决于您要查找的消息的位置,您可以使用一个catch捕获平台异常,然后检查错误代码: 试试看{ ... }平台上异常捕获(e){ 开关(e.code

我有两个平台异常错误,一个是(电子邮件地址格式错误),另一个是(电子邮件地址已被其他帐户使用),我知道如何使用(
在PlatformException catch(err){}catch(err){})上,但如何同时捕获它们呢?

您可以在

平台上的异常捕获(错误){code>
并比较err.code、err.message或err.details,这取决于您要查找的消息的位置,您可以使用一个catch捕获平台异常,然后检查错误代码:

试试看{
...
}平台上异常捕获(e){
开关(e.code){
案例“错误\错误\密码”:
...
打破
案例“错误用户未找到”:
...
打破
违约:
...
}
}

如果它们都是
PlatformException
那么
on PlatformException catch(e)
将同时捕获它们。另外,千万不要用毛毯式的
catch(e)
,因为那样会隐藏你应该单独捕捉和处理的各种细微错误。它是由哪种错误引起的?听起来像是包裹里的一个例外,对吧SDK@Bach是的,这是FireBaseAuth软件包(注册方法)的一个例外@Abion47愿上帝原谅你(:我被困了4个小时,因为你告诉我永远不要做毛毯捕捉(e)但是当我添加它时,它起了作用,哈哈,无论如何,谢谢你的帮助!@kingstation99不,关键是你不这么做,因为它是一种易于使用和容易滥用的解决方案。使用一个笼统的捕获可能会起作用,但你现在在代码中有了一个位置,如果出现任何错误,除非它导致其他错误,否则你永远不会知道,然后你将花费数小时追踪源代码,而不是你的应用程序崩溃,你会立即知道发生的位置和原因。我没有说不使用它是因为它不起作用,我说不使用它是因为它是一个可怕的、懒惰的习惯,而且是一个糟糕的做法。非常感谢你!它成功了。但我需要补充的是,你必须做出正确的选择代码如下:在PlatformException catch(err){}catch(err){}上,将if条件放在第二个catch err中,否则它将不起作用。