View或ScopedModel中的catch错误之间的区别?

时间:2019-04-20 16:45:11

标签: firebase model-view-controller dart flutter try-catch

我有带有社交登录名的应用程序。

如果用户登录时出现错误,我需要显示错误对话框。但我不知道在哪里尝试捕获错误:

  • ScopedModel中,然后将信息传递给查看

  • 视图中。

我有ScopedModel,带有登录代码和查看

例如在视图中:

child: RaisedButton(
  onPressed: () async {


      await loginModel.signInWithGoogle;

  },

ScopedModel

await _signInWithGoogle();

…

Future<void> _signInWithGoogle() async {

...

我需要抓住PlatformException并向用户显示小吃栏上的信息:

on PlatformException catch (e) {    
    if (e.code == 'ERROR_ACCOUNT_EXISTS_WITH_DIFFERENT_CREDENTIAL') {
...
    }

我应该将此捕获放入模型还是查看? dart捕捉错误会有所不同吗?

例如(在视图中):

child: RaisedButton(
  onPressed: () async {

try {
      await loginModel.signInWithGoogle;
} on PlatformException catch (e) {

不同于(在 ScopedModel 中):

try {
  await _signInWithGoogle();
} on PlatformException catch (e) {

0 个答案:

没有答案