如何在Flutter中捕获SQLITE异常?

时间:2019-09-27 19:51:04

标签: flutter dart

我的代码中有一个try / catch序列,它根本没有捕获错误。有人可以告诉我我在做什么错。

一些背景。用户按下一个按钮,我们将更新SQLITE表中的一行。正在更新的那列是唯一的(即,它不应允许重复。我想捕获尝试重复输入时的错误:

代码如下:

                IconButton( icon: Icon(Icons.add_circle,color: Colors.redAccent, size: 40),
                    onPressed: ()
                    {

                      setState(() async
                      {

                        print(textController.text);
                        try
                        {
                          await db.rawInsert('INSERT INTO MyRoutines(MyRoutineName) VALUES (?)', [textController.text]);


                        }
                        catch(e)
                        {
                          switch(e)
                          {
                            case 19:
                              print('This is a duplicate');
                              break;

                          }
                        }

                      });


                    },
                  ),

因此,您可以从运行错误或输出中看到,当发生重复条目时给出了code = 19。我尝试抓住这个问题,但是什么也没有发生。即该打印语句从不触发。

我在做什么错?我需要捕获所有SQL错误,并且我不知道如何捕获错误或错误代码是什么。

我在网上检查了一下,但找不到。谁能提供一些启示?

谢谢

1 个答案:

答案 0 :(得分:0)

也许是您的switch语句。

已经捕获到错误“ e”,也许您必须打开诸如e.errNo之类的东西。