所以我故意试图打破我的计划,我已经成功了。
在我创建连接之后,我删除了程序使用的sqlite数据库,而程序正在运行。然后我尝试更新数据库,如下所示。
Statement stmt;
try
{
stmt = Foo.con.createStatement();
stmt.executeUpdate("INSERT INTO "+table+" VALUES (\'" + itemToAdd + "\')");
}
catch(SQLException e)
{
System.out.println("Error: " + e.toString());
}
问题是,它没有捕获异常,并继续运行,就好像数据库已成功更新一样。与此同时,数据库甚至不存在,因为这是在我删除它之后。
谢谢。
答案 0 :(得分:1)
有趣的是,我发现如果我在使用数据库时删除数据库然后尝试更新数据库,它会在新位置更新数据库(在垃圾箱中!)。您无法在垃圾箱中永久删除它,并且您正在通过程序访问它。
答案 1 :(得分:0)
看起来这不是抛出的SQLException ......
尝试捕获每个异常类型,看看是否收到错误:
Statement stmt;
try
{
stmt = Foo.con.createStatement();
stmt.executeUpdate("INSERT INTO "+table+" VALUES (\'" + itemToAdd + "\')");
}
catch(Exception e)
{
System.out.println("Error: " + e.toString());
}
或
Statement stmt;
try
{
stmt = Foo.con.createStatement();
stmt.executeUpdate("INSERT INTO "+table+" VALUES (\'" + itemToAdd + "\')");
}
catch(Throwable e)
{
System.out.println("Error: " + e.toString());
}