我无法在 Grails 中捕获 CertificateExpiredException。当我在代码中添加异常时,我得到一个“Catch 语句参数类型不是 Throwable 的子类”。信息。如果我把一个通用的“异常”作为一个 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
}
}
}