我正在开发一个C#应用程序,它的后端是sqlite。在我的应用程序中,我有一个按钮来清除数据库(删除.db文件并重新创建带有一些初始数据的新文件)。有时候,当我尝试删除数据库时,它会说无法删除,因为它正在被另一个进程使用。在删除之前,我正在使用关闭连接、释放和清空池函数。即使这样,它仍然会抛出相同的异常。以下是我的代码:
string targetDataBaseFilePath = Path.Combine(dataDirectoryPath, "local.db");
ThingzDatabase.Create(targetDataBaseFilePath, "touchdb");
在 create 函数中,我定义了以下代码,出现了错误:
if (File.Exists(DatabaseFileName))
{
try
{
ThingzDatabase.localdb.conn.Close();
ThingzDatabase.localdb.conn.Dispose();
SQLiteConnection.ClearAllPools();
}
catch (Exception)
{
}
File.Delete(DatabaseFileName); //error throws from here.
}
我该如何防止错误被抛出?