我在Grails中捕获CertificateExpiredException时遇到问题。当我在代码中添加异常时,我得到一个“Catch语句参数类型不是Throwable的子类”。信息。如果我将一个通用的“Exception”作为catch参数,它就可以工作。我如何捕获此SSL错误并为用户提供有意义的响应?
这是一个示例服务:
class MyService {
static transactional = false
String someUrl = 'https://example.com'
def getThings() {
def conn
try {
conn = someUrl.toURL().openConnection()
} catch (CertificateExpiredException e) { // doesn't like this
log.debug e // doesn't work?
return "SSL error, no results returned."
}
if(conn.responseCode == 200){
// do stuff
}
}
}
答案 0 :(得分:4)
您需要添加导入:
import java.security.cert.CertificateExpiredException
class MyService {
...
}