我的代码中有一个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错误,并且我不知道如何捕获错误或错误代码是什么。
我在网上检查了一下,但找不到。谁能提供一些启示?
谢谢
答案 0 :(得分:0)
也许是您的switch语句。
已经捕获到错误“ e”,也许您必须打开诸如e.errNo之类的东西。