在Grails中捕获CertificateExpired异常

时间:2013-02-05 01:22:29

标签: grails groovy

我在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
        }
    }
}

1 个答案:

答案 0 :(得分:4)

您需要添加导入:

import java.security.cert.CertificateExpiredException

class MyService {
   ...
}