对于scala中抛出的重复5XX响应代码,我应该使用哪种类型的异常?
简言之 如果http请求在scala中不断返回5XX响应代码,我应该抛出什么类型的异常 长格式 我有重试http请求的代码,因为我使用的是一些不太可靠的端点。这些重试往往有效。但有时,我只是不断得到408个错误的5xx,需要抛出一个异常。目前,我在下面的代码中有一个IOException的占位符对于scala中抛出的重复5XX响应代码,我应该使用哪种类型的异常?,scala,exception,Scala,Exception,简言之 如果http请求在scala中不断返回5XX响应代码,我应该抛出什么类型的异常 长格式 我有重试http请求的代码,因为我使用的是一些不太可靠的端点。这些重试往往有效。但有时,我只是不断得到408个错误的5xx,需要抛出一个异常。目前,我在下面的代码中有一个IOException的占位符 def requestRetrier ... try { responseObject = request(url, headers, payload, requestMethod, connect
def requestRetrier
...
try {
responseObject = request(url, headers, payload, requestMethod, connectTimeout, readTimeout)
if ((List(500, 503...) contains responseObject.responseCode) && (retries != 0)) {
responseObject = requestRetrier(
url = url,
headers,
payload,
requestMethod,
connectTimeout,
readTimeout,
retries - 1)
} else if ((retries == 0) && (List(500, 503...) contains responseObject.responseCode)) {
throw new java.io.IOException
}
....
我只想创建一个新的自定义异常,使其更加具体并抛出它 比如:
case class RetriesExceededException(message: String) extends Exception(message)
然后,您可以在示例中使用它:
} else if ((retries == 0) && (List(500, 503...) contains responseObject.responseCode)) {
throw RetriesExceededException(s"Failed to get response after $retryCount tries.")
}
我只想创建一个新的自定义异常,使其更加具体并抛出它 比如:
case class RetriesExceededException(message: String) extends Exception(message)
然后,您可以在示例中使用它:
} else if ((retries == 0) && (List(500, 503...) contains responseObject.responseCode)) {
throw RetriesExceededException(s"Failed to get response after $retryCount tries.")
}
为什么不创建一个自定义异常并抛出它呢?类似于
抛出新的retriesexcededexception(s“在$retryCount尝试后无法获得响应”)
@DanW我认为这是正确的答案。我已经添加了这个作为答案。如果它对您有效,请接受,这样问题就不会一直悬而未决。为什么不创建一个自定义异常并抛出它呢?类似于抛出新的retriesexcededexception(s“在$retryCount尝试后无法获得响应”)
@DanW我认为这是正确的答案。我已经添加了这个作为答案。如果对你有效,请接受,这样问题就不会一直悬而未决。