不会引发C#SQLiteException(并且只有SQLiteException)

约书亚·佩奇(Joshua Pech)

我有一段代码:

try
{
    //sniping out a bunch of irrelevant code here
    result = cmd.ExecuteScalar();
    onExecution?.Invoke(result);
    return true;
}
catch (SQLiteException e)
{
    if (e.ResultCode == SQLiteErrorCode.Corrupt)
    {
        CorruptionDetected?.Invoke(null, EventArgs.Empty);
    }
    //snip - else if {etc}
    throw;
}

问题:我将VS设置为始终无时无刻地打破所有异常。VS可以正确地做到这一点,并且在程序中除此以外的所有其他异常方面都没有问题。

我知道为什么会发生错误。无论如何,这对我来说绝对不感兴趣,而且无关紧要。

我想知道的是为什么这个问题似乎没有真正生成异常或没有捕获到异常。我以100%的确定性知道发生了错误。您可以在“诊断工具”窗口的“事件”选项卡中看到它们。它们堆积在那里,但是我从来没有遇到可捕获的异常,只是“事件”选项卡中没有用的垃圾。

我该如何处理?如果错误(SQLite错误(5):数据库已锁定)是一个问题,那么为什么我没有收到异常?如果这不是问题,并且最终得到处理,为什么它会污染我的事件列表?

它目前的状态是完全不可接受的,因为它完全没有道理。在这种情况下,我应该得到一个异常是一个问题,或者在这种情况下,我不想被无用的调试事件所淹没,这不是一个问题。

马塞尔

我最近在我们的C#/ C ++代码中研究了相同的问题。我最终下载了System.Data.SQLite源代码并调试了该库。System.Data.SQLite DLL是标准SQLite(C ++)库的C#包装器。

最重要的是:System.Data.SQLite DLL使用异常,但是SQLite使用返回码。包装程序会截取来自SQLite的返回代码,并在合理的情况下将其转换为异常。

如果SQLite代码(SQLite.Interop)是使用INTEROP_LOG标志编译的,则该库仅将某些错误记录到标准输出中,而不会(可能是错误的??)将此类错误通知包装器。因此包装器不会意识到该问题,也不会抛出异常。

更深入:

如果您要自行下载和编译System.Data.SQLite库,请尝试在函数sqlite3InteropLogCallback中的文件SQLite.Interop \ interop.c中设置断点。每当遇到“数据库锁定”错误时,您的程序都会停止,但是不会引发异常。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Android SQLiteException没有这样的列

来自分类Dev

SQLiteException:没有此类Android列

来自分类Dev

SQLiteException:没有这样的列

来自分类Dev

Java不会运行带有参数的预准备语句并且不会引发任何错误

来自分类Dev

SQLiteException:没有这样的列:1(代码1):

来自分类Dev

SQLiteException:没有这样的列:(代码1)

来自分类Dev

SQLiteException没有这样的列:加号(代码1)

来自分类Dev

SQLiteException:没有这样的列:(代码1)

来自分类Dev

SQLiteException没有这样的列:加号(代码1)

来自分类Dev

android.database.sqlite.SQLiteException:没有这样的表

来自分类Dev

不断获取SQLiteException没有这样的列

来自分类Dev

SQLiteException:没有这样的列:DeletedNotes(代码 1)

来自分类Dev

WPF C#StreamWriter不会写入文件,并且不会引发异常

来自分类Dev

处理Android的SQLiteException

来自分类Dev

“ CREATE”附近的SQLiteException

来自分类Dev

尝试创建表时在Xamarin.Android中引发的SQLite.SQLiteException

来自分类Dev

删除查询时,“ <”附近的SQLiteException

来自分类Dev

android.database.sqlite.SQLiteException:

来自分类Dev

调用getReadableDatabase时获取SQLiteException

来自分类Dev

SQLiteException:无法识别的令牌:“ \”:

来自分类Dev

Android SQLiteException:我是盲人吗?

来自分类Dev

android.database.sqlite.SQLiteException:表中没有这样的列

来自分类Dev

SQLiteException:尝试将对象添加到表时没有此类表

来自分类Dev

Android SQLite错误:android.database.sqlite.SQLiteException:没有这样的列:(代码1)

来自分类Dev

android.database.sqlite.SQLiteException:表格数据没有名为_Y的列

来自分类Dev

引起原因:android.database.sqlite.SQLiteException:没有这样的表,同时编译了DELETE FROM

来自分类Dev

android.database.sqlite.SQLiteException:表abc没有名为xyz的列

来自分类Dev

Android onUpgrade SQLiteException:删除表时没有此类表

来自分类Dev

android.database.sqlite.SQLiteException:没有这样的列:highID(Sqlite 代码 1):

Related 相关文章

  1. 1

    Android SQLiteException没有这样的列

  2. 2

    SQLiteException:没有此类Android列

  3. 3

    SQLiteException:没有这样的列

  4. 4

    Java不会运行带有参数的预准备语句并且不会引发任何错误

  5. 5

    SQLiteException:没有这样的列:1(代码1):

  6. 6

    SQLiteException:没有这样的列:(代码1)

  7. 7

    SQLiteException没有这样的列:加号(代码1)

  8. 8

    SQLiteException:没有这样的列:(代码1)

  9. 9

    SQLiteException没有这样的列:加号(代码1)

  10. 10

    android.database.sqlite.SQLiteException:没有这样的表

  11. 11

    不断获取SQLiteException没有这样的列

  12. 12

    SQLiteException:没有这样的列:DeletedNotes(代码 1)

  13. 13

    WPF C#StreamWriter不会写入文件,并且不会引发异常

  14. 14

    处理Android的SQLiteException

  15. 15

    “ CREATE”附近的SQLiteException

  16. 16

    尝试创建表时在Xamarin.Android中引发的SQLite.SQLiteException

  17. 17

    删除查询时,“ <”附近的SQLiteException

  18. 18

    android.database.sqlite.SQLiteException:

  19. 19

    调用getReadableDatabase时获取SQLiteException

  20. 20

    SQLiteException:无法识别的令牌:“ \”:

  21. 21

    Android SQLiteException:我是盲人吗?

  22. 22

    android.database.sqlite.SQLiteException:表中没有这样的列

  23. 23

    SQLiteException:尝试将对象添加到表时没有此类表

  24. 24

    Android SQLite错误:android.database.sqlite.SQLiteException:没有这样的列:(代码1)

  25. 25

    android.database.sqlite.SQLiteException:表格数据没有名为_Y的列

  26. 26

    引起原因:android.database.sqlite.SQLiteException:没有这样的表,同时编译了DELETE FROM

  27. 27

    android.database.sqlite.SQLiteException:表abc没有名为xyz的列

  28. 28

    Android onUpgrade SQLiteException:删除表时没有此类表

  29. 29

    android.database.sqlite.SQLiteException:没有这样的列:highID(Sqlite 代码 1):

热门标签

归档