【发布时间】:2011-09-20 15:30:58
【问题描述】:
对于Sqlite.Net data provider (System.Data.Sqlite.dll)(新开发已分叉here),我很难找出各种类及其方法引发的异常。我知道有可以抛出的 SqliteExceptions,但是什么时候?
我已确保我有随附的 System.Data.Sqlite.xml 文档文件,但它似乎没有列出每种方法引发的异常。
我不想将不必要的代码包装到 try/catch 块中(或者盲目地在任何地方捕获通用异常)。
我知道SqliteConnection是从DbConnection派生的,SqliteCommand是从DbCommand派生的,所以如果有必要我想我可以看看那里的文档。但是,没有一个基类会列出SqliteException,那么什么时候会抛出这些类型的异常呢?
PS - 我使用的是 1.0.64 版(从 2009 年开始...目前无法升级)。
更新:
由于缺乏响应,是否有人使用 System.Data.Sqlite.dll?如果是这样,您采用什么方法来处理库中可用对象可能引发的异常?有没有一些标准的方法来处理这些异常,因为似乎没有关于抛出的异常和哪些类的文档?
更新 2:
我确实设法在 c:\program files\SQLite.NET\Doc\ 下找到了 SQLite.NET 文档(似乎很明显)。到目前为止的文档很棒,但是它并没有告诉您抛出了哪些异常。到目前为止,我能做的最好的事情就是查看继承的基类或实现的接口,看看抛出了哪些异常。但是,这仍然无助于了解何时抛出 SqliteException 对象。
更新 3:
获得源代码后,似乎没有一个类本身包含任何/// <exception cref="ExceptionType">Something went wrong!</exception> xml cmets。这解释了为什么 SQLite.NET 帮助文件或 Visual Studio Intellisense 都没有列出任何可能引发的异常。我创建了一个ticket 请求xml cmets 包含异常,如果它们的优先级列表太低,我可以自己添加它们。对于任何可能感兴趣的人,如果有任何新的发展,我都会及时更新这个问题。
【问题讨论】:
-
是的,风滚草徽章...*哭泣*
-
他们在您的工单中为您提供了一些关于处理 xml 异常报告以及在此处更新工单状态的其他问题:system.data.sqlite.org/index.html/tktview?name=1c2dd41f57
-
@Mat Nadrofsky:感谢更新!
-
@Mat Nadrofsky:看起来他们实际上并没有问我问题......他们是修辞。他们基本上不确定如何详细了解异常(您是否记录了所有异常,包括可能由 .Net 框架抛出的异常,您是否包括那些冒泡且未在当前方法中处理的异常,您是否包括只有你明确抛出的),所以将其保持为低优先级。这一直是我想知道的正确方法的一个领域。
-
这很令人沮丧。遗憾的是没有标准的方法来做到这一点。
标签: .net sqlite exception system.data.sqlite