我正在尝试捕获SocketTimeoutException,以便我的套接字保持活动状态,并且可以继续读取程序。不幸的是,无论我如何尝试捕获读取超时,我都无法捕获,因此应用程序关闭。
String response;
try {
response = input.readLine();
System.out.println("Server Response: " + response);
return;
} catch(AssertionError e){
//we timed out. print to user that timeout occured,
//try command again
System.out.println("TIMEOUT: Please try your command again.\n"
+ "If you created a game, join an existing or create again.");
} catch (SocketTimeoutException e) {
//we timed out. print to user that timeout occured,
//try command again
System.out.println("TIMEOUT: Please try your command again.\n"
+ "If you created a game, join an existing or create again.");
} catch (IOException ex) {
//do nothing
}
java.net.SocketTimeoutException: Read timed out
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:150)
at java.net.SocketInputStream.read(SocketInputStream.java:121)
at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:284)
at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:326)
at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:178)
at java.io.InputStreamReader.read(InputStreamReader.java:184)
at java.io.BufferedReader.fill(BufferedReader.java:161)
at java.io.BufferedReader.readLine(BufferedReader.java:324)
at java.io.BufferedReader.readLine(BufferedReader.java:389)
at Client.main(Client.java:97)
这不是真正的代码,您在某个地方有自己的SocketTimeoutException类,或者您导入了错误的类。我建议您在catch IOException块中放入一些有用的东西。你可能会得到一个惊喜。
为什么要捕获AssertionError并将其视为超时对我来说是个谜。
问题内容: 我正在尝试捕获“ android.database.sqlite.SQLiteException:错误代码5:数据库已锁定”异常,并带有: 由于某些原因,我仍然会收到错误消息,并且LogCat中没有显示“ caught”。我尝试捕获一般的“异常”,但这仍然行不通。怎么了? 更新, 我发现了这个问题,这确实很奇怪:由于某种原因,将goto10声明的db.insert()更改为db.ins
问题内容: 尽管我在日志中看到了异常,但似乎无法捕获到约束违例异常。 实体 我正试图抓住它 -它永远不会到达捕获块。 当我使用 捕获(异常e) 我捕获到“ javax.transaction.RollbackException:ARJUNA016053:无法提交事务。” 这是错误日志: 我究竟做错了什么 ? 更新>> 我当前的代码是: 日志是 环境:PostgreSQL 9.2 JBoss AS
我使用的是Spring Boot 2和Spring Boot starter数据jpa以及底层的MariaDB。 我有一个带有唯一键“用户名”的表。如果违反了此约束,我想捕获,但似乎Spring正在记录并且不会在记录后重新抛出(我最好的猜测)。被抛出。 我想在中捕获。 以下是几段代码片段: 堆栈跟踪:
问题内容: 我的IDE给我该行的错误 我试着抓住,但是并没有使错误消失。有什么想法吗? 问题答案: 扩展了,所以您的IDE本身就有了更深的麻烦-也许库导入被搞砸了?
我有一个实体类Person,它通过JoinColumn连接到另一个实体Address,并且与Person有一个关系,Address实体在字段Country上有一个@NotNull注释。 简化代码如下: 我还有一个服务方法,即updateAddress,该方法最简单的形式如下: 我编写了一个小的单元测试,其中我试图使用updateAddress方法为一个没有预定义地址的人更新地址。 即 Transa
问题内容: 是否可以在Java中构建一小段代码,以使假设的代码无法捕获? 想到的想法正在使用例如拦截器或面向方面的编程。 问题答案: 我没有试过,所以我不知道,如果JVM将限制这样的事情,但也许你可以编译代码抛出,但在运行时提供了一个类定义的其 未延伸的Throwable 。 更新: 没用 它生成一个验证错误: 更新2: 实际上,如果禁用字节码验证程序,则可以使它正常工作!() 更新3: 对于那些