在 Flutter 中捕获数据库异常

Catching DatabaseException in Flutter

我想知道如何处理并成功捕获我的数据库异常。我的 Sqlite 数据库中有一个主键 ID 和另一个名为 name 的键。我正在使用 flutter 插件 sqflite。当我的数据库中已经有一个具有给定 ID 的条目时,我想处理这种情况,我想显示 ID 已经存在,因为我想知道如何处理异常。

我试图将代码包围在一个 try catch 块中,但我无法让 FLutter 意识到 DatabaseException class,它给我错误说 "DatabaseException" 不是一个类型并且可以' 用于 on catch 子句。我想在按下按钮后向我的数据库中添加一个新的主题,如果用户输入与现有 ID 值相同的 ID 值,我想处理该错误。

onSubmitted: (test) async {
                      Subject newSubject = Subject(name: name, id: test);
                      try {
                        await DBProvider.db.newSubject(newSubject);
                      } on DatabaseException {}
                    },

您应该在使用异常的 dart 文件中导入 sqflite,添加 这个:

import 'package:sqflite/sqflite.dart';