显示 Flutter 自定义错误消息

2025-05-24

显示 Flutter 自定义错误消息

错误处理是一个复杂的过程,它非常枯燥乏味,而且耗时费力。其中一个问题是如何在 Flutter 应用程序中向用户显示错误。今天我们就来聊聊这个问题。

所有项目都使用不同的方式向用户显示异常和错误信息。

有时应用程序会显示常见的信息栏
小吃店

有时它通过模态对话框实现
模态对话框

有时它与横幅屏幕一起制作
Google 横幅屏幕

但我认为这不是问题。
我们都是很棒的开发人员,知道如何在应用程序的UI上做任何事情。

问题始于我们需要了解哪些消息以及我们想要在何处显示它们。而最重要的问题是如何以一种简单的方式为应用程序的所有服务和存储库处理它们。

您可以使用talker库。如何为我在本文
中展示的应用程序配置它

但今天我们要讨论的是其他东西。
我们需要一种简单的方法来设置只显示一次的错误信息,而不是一直在应用程序中复制这段代码。

😎 让我们这样做吧......

Talker 包装器示例

1)在pubspec.yaml中添加talker_flutter依赖项



talker_flutter: ^1.4.0


Enter fullscreen mode Exit fullscreen mode

2)为您的应用程序初始化 talker



void main() {
  final talker = Talker(
    loggerSettings: TalkerLoggerSettings(
      enableColors: !Platform.isIOS,
    ),
  );
  runZonedGuarded(
    () => runApp(
      CustomErrorMessagesExample(talker: talker),
    ),
    (Object error, StackTrace stack) {
      talker.handle(error, stack, 'Uncaught app exception');
    },
  );
}


Enter fullscreen mode Exit fullscreen mode

3)您需要在应用程序的初始路由或想要显示错误消息的屏幕上实现包装器。



@override
  Widget build(BuildContext context) {
    return Scaffold(
      body: TalkerWrapper(
        talker: talker,
        options: const TalkerWrapperOptions(
          enableErrorAlerts: true,
        ),
        child: const Center(child: Text('Your screen')),
      ),
    );
  }


Enter fullscreen mode Exit fullscreen mode

您可以在项目存储库中看到完整的示例

您还可以查看talker_shop_app_example应用程序示例,其中使用 BLoC 作为状态管理,并由 talker 显示调整后的异常

Talker 包装器应用程序示例

定制

但是每个人都希望使用不同的 Widget 来显示错误。
而这个问题可以通过 talker_flutter 库来解决。

为了自定义 Snackbar,您可以使用 TalkerWrapper 的选项



class TalkerWrapperOptions {
  final String exceptionTitle;
  final String errorTitle;
  final TalkerExceptionBuilder? exceptionAlertBuilder;
  final TalkerErrorBuilder? errorAlertBuilder;
  final bool enableErrorAlerts;
  final bool enableExceptionAlerts;
}


Enter fullscreen mode Exit fullscreen mode
  • 使用exceptionAlertBuildererrorAlertBuilder在 Snackbars 中构建自定义小部件。
  • 使用enableErrorAlertsenableExceptionAlerts来过滤信息栏。
  • 使用exceptionTitleerrorTitle作为自定义 Snackbar 标题。

更多定制

如果您想显示其他小部件(Snackbars 除外) - 您可以使用 TalkerListener 而不是 TalkerWrapper。



TalkerListener(
talker: talker,
listener: (data) {
/// Show your error messages on modal dialogs, screens, etc
},
child: /// Your screen or app widget,
);

Enter fullscreen mode Exit fullscreen mode




结论

希望我已经在文章中解释了所有我想表达的意思。
感谢你阅读这篇小文章🙏!

在 GitHub 上与我联系,并请talker
添加 ✨star✨ 如果您尝试在您的应用程序中使用它,我会非常高兴

文章来源:https://dev.to/frezyx/showing-flutter-custom-error-messages-109o
PREV
2023 年成为前端 Web 开发人员 - 一步步指南 了解你的职业方向 培养你的技能 创建作品集/撰写案例研究 展现自我 申请职位 资源 结论
NEXT
Flutter 小部件可快速创建一组按钮✈️