当前位置: 首页 > 面试题库 >

无法捕获SQLiteException

湛同
2023-03-14
问题内容

我正在尝试捕获“ android.database.sqlite.SQLiteException:错误代码5:数据库已锁定”异常,并带有:

    try {
        db.insert("mytable", null, myvalues);
    } catch(SQLiteException e) {
        Log.d("My App", "caught");

        ...
    }

由于某些原因,我仍然会收到错误消息,并且LogCat中没有显示“ caught”。我尝试捕获一般的“异常”,但这仍然行不通。怎么了?

更新,
我发现了这个问题,这确实很奇怪:由于某种原因,将goto10声明的db.insert()更改为db.insertOrThrow()神奇地修复了所有问题。错误是从那一行来的,但是也许不是抛出异常,而只是崩溃或发生了什么?


问题答案:

我不认为这.insert会引发例外。当它在内部捕获异常时,您可能只看到它正在编写的日志消息。如果希望插入失败时引发异常,请.insertOrThrow改用。



 类似资料:
  • 问题内容: 尽管我在日志中看到了异常,但似乎无法捕获到约束违例异常。 实体 我正试图抓住它 -它永远不会到达捕获块。 当我使用 捕获(异常e) 我捕获到“ javax.transaction.RollbackException:ARJUNA016053:无法提交事务。” 这是错误日志: 我究竟做错了什么 ? 更新>> 我当前的代码是: 日志是 环境:PostgreSQL 9.2 JBoss AS

  • 我使用的是Spring Boot 2和Spring Boot starter数据jpa以及底层的MariaDB。 我有一个带有唯一键“用户名”的表。如果违反了此约束,我想捕获,但似乎Spring正在记录并且不会在记录后重新抛出(我最好的猜测)。被抛出。 我想在中捕获。 以下是几段代码片段: 堆栈跟踪:

  • 问题内容: 我的IDE给我该行的错误 我试着抓住,但是并没有使错误消失。有什么想法吗? 问题答案: 扩展了,所以您的IDE本身就有了更深的麻烦-也许库导入被搞砸了?

  • 我正在尝试捕获SocketTimeoutException,以便我的套接字保持活动状态,并且可以继续读取程序。不幸的是,无论我如何尝试捕获读取超时,我都无法捕获,因此应用程序关闭。

  • 我有一个实体类Person,它通过JoinColumn连接到另一个实体Address,并且与Person有一个关系,Address实体在字段Country上有一个@NotNull注释。 简化代码如下: 我还有一个服务方法,即updateAddress,该方法最简单的形式如下: 我编写了一个小的单元测试,其中我试图使用updateAddress方法为一个没有预定义地址的人更新地址。 即 Transa

  • 问题内容: 是否可以在Java中构建一小段代码,以使假设的代码无法捕获? 想到的想法正在使用例如拦截器或面向方面的编程。 问题答案: 我没有试过,所以我不知道,如果JVM将限制这样的事情,但也许你可以编译代码抛出,但在运行时提供了一个类定义的其 未延伸的Throwable 。 更新: 没用 它生成一个验证错误: 更新2: 实际上,如果禁用字节码验证程序,则可以使它正常工作!() 更新3: 对于那些