【发布时间】:2018-09-19 21:56:06
【问题描述】:
我的任务是返回基于布尔值的异常实例
如果异常是 ConnectTimeoutException 的实例,则返回 true,或者如果异常实例是 SocketTimeoutException,则返回 true。
我已经编写了代码,这是正确的方法吗?
(注意:我必须在 return 语句中检查这一点,而不是在 if 语句中。)
代码:
public boolean canRetry(RetryContext context) {
Throwable exception = context.getLastThrowable();
......
......
......
......
......
// Some Code
return (exception instanceof ConnectTimeoutException || exception instanceof SocketTimeoutException);
}
【问题讨论】:
-
不知何故这没有意义。在任何情况下你都会返回“它的实例”,那么为什么不只是
return exception;?你想达到/解决什么?为什么不能使用if?完全不清楚。 -
它将返回
boolean。 -
为什么要玩实例,为什么不简单的 throw e 呢?并检查例如上层或只是抓住它并做任何你想做的事?
-
return (exception instanceof ConnectTimeoutException || exception instanceof SocketTimeoutException);在这种情况下对我来说看起来不错。 -
@lexicore 感谢您的确认。