socket异常的异常处理
Exception handling for socket exception
我需要根据我捕获的异常类型做不同的事情,以下是我学到的两种可以使用的方法:
方法一:
try{
..
..
}catch(SocketTimeoutExceptione){
//do something
}
catch(RunTimeException e){
//do something
}
方法二:
try{
}
catch(RunTimeException e){
if (e instanceof SocketTimeoutException) {
LOGGER.error(e);
}else {
LOGGER.error(e);
//do something
}
}
我收到以下异常,这是一个已知的连接问题:抛出异常 org.springframework.web.client.ResourceAccessException:POST 请求 "test" 时出现 I/O 错误:读取超时;嵌套异常是 java.net.SocketTimeoutException:读取超时
方法一不可行,仍然会进入运行时间异常块。
在方法 2 中,我无法检查它是否是 运行 运行time 异常的实例,因为套接字异常不是它的一部分。
这种情况我该如何处理
java.lang.Object
java.lang.Throwable
java.lang.Exception
java.lang.RuntimeException
org.springframework.core.NestedRuntimeException
org.springframework.web.client.RestClientException
org.springframework.web.client.ResourceAccessException
这是例外 class 层次结构。我想如果你试着抓住 ResourceAccessException
而不是 SocketTimeoutException
就没问题了。但是当 catch 找不到特定的异常时,如果它可以捕获它的超级异常 classes,它会捕获那个,在你的情况下它是 RuntimeException
.
我需要根据我捕获的异常类型做不同的事情,以下是我学到的两种可以使用的方法:
方法一:
try{
..
..
}catch(SocketTimeoutExceptione){
//do something
}
catch(RunTimeException e){
//do something
}
方法二:
try{
}
catch(RunTimeException e){
if (e instanceof SocketTimeoutException) {
LOGGER.error(e);
}else {
LOGGER.error(e);
//do something
}
}
我收到以下异常,这是一个已知的连接问题:抛出异常 org.springframework.web.client.ResourceAccessException:POST 请求 "test" 时出现 I/O 错误:读取超时;嵌套异常是 java.net.SocketTimeoutException:读取超时
方法一不可行,仍然会进入运行时间异常块。 在方法 2 中,我无法检查它是否是 运行 运行time 异常的实例,因为套接字异常不是它的一部分。 这种情况我该如何处理
java.lang.Object
java.lang.Throwable
java.lang.Exception
java.lang.RuntimeException
org.springframework.core.NestedRuntimeException
org.springframework.web.client.RestClientException
org.springframework.web.client.ResourceAccessException
这是例外 class 层次结构。我想如果你试着抓住 ResourceAccessException
而不是 SocketTimeoutException
就没问题了。但是当 catch 找不到特定的异常时,如果它可以捕获它的超级异常 classes,它会捕获那个,在你的情况下它是 RuntimeException
.