【发布时间】:2013-10-22 11:49:43
【问题描述】:
所以我故意试图破坏我的程序,我成功了。
在创建连接后,我在程序运行时删除了程序使用的 sqlite 数据库。然后我尝试更新数据库,如下所示。
Statement stmt;
try
{
stmt = Foo.con.createStatement();
stmt.executeUpdate("INSERT INTO "+table+" VALUES (\'" + itemToAdd + "\')");
}
catch(SQLException e)
{
System.out.println("Error: " + e.toString());
}
问题是,它没有捕捉到异常,继续运行,就好像数据库更新成功一样。与此同时,数据库在那时甚至都不存在,因为这是在我删除它之后。
- 更新的时候不检查数据库是否还在吗?
- 是否必须在每次更新时手动检查数据库连接以确保数据库没有损坏/删除?
- 这是通常的做法,还是有更简单/更稳健的方法?
谢谢。
【问题讨论】:
-
在进一步分析之前,1) 我会打印出连接字符串并确保它指向您关闭的任何数据库。 2) 确保数据库真的宕机了。
-
您在哪个平台上运行? Windows、Linux、Mac?
标签: java database sqlite exception