3

我无法在 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
        }
    }
}
4

1 回答 1

4

您需要添加一个导入:

import java.security.cert.CertificateExpiredException

class MyService {
   ...
}
于 2013-02-05T04:46:51.707 回答