我是 Perl 编程的新手(也是 SO),所以我的问题可能以一种糟糕的方式表述,但我确实阅读了很多书籍和教程,但我没有找到任何解决(甚至提到)我的问题的东西。
我正在尝试使用 DBI 和 SQLite 编写一些代码,如果发生可恢复的错误(数据库已满或锁定等),则重试插入查询,但如果错误不可恢复(数据库已删除或损坏等),则会死亡。
我发现 SQLite C 接口导出错误代码:
http://www.sqlite.org/c3ref/c_abort.html
但我还没有发现任何与 Perl 类似的东西。我真希望我不必在我的第一个 Perl 程序中使用幻数!:-)
顺便说一句,我在网上看到的文档和示例很好地解释了 DBI 中的手动与自动(即有异常)错误处理,但没有一个显示如何根据错误类型采取不同的操作。这不是一个常见的用例吗?
此外,他们都同意 DBI::err 不是判断发生了哪个错误的正确变量。他们或多或少含蓄地说要使用 DBI::errstr,但我发现依赖字符串比较与面向人的可能多行错误字符串有点尴尬......
感谢您的任何建议!