当我尝试在 Controller 方法中捕获异常时,我无法捕获 SocketException。 Controller 操作如下所示:
def updateDeviceStartV1() {
try {
...
response.status = 200;
response.setContentType("application/octet-stream")
response.outputStream << responseService.encryptedResponse // byte[]
}
catch(Exception e) {
log.error "Server faced unexpected exception", e
response.status = 500;
...
}
由于客户端意外关闭连接,“response.outputStream << responseService.encryptedResponse”行引发了 SocketException。然而,这个异常没有被捕获,并且控制台收到标准异常显示...
我做错了什么吗?
最佳答案
我认为,如果引发异常的方法没有显式抛出异常(签名中带有 throws),它将作为 UndeclaredThrowableException 抛出。那么你捕获的类型就与它不匹配。 try catch SocketException。或者,如果您可以使用catch(all)
捕获它们。
哦,看看this .
关于Grails Controller - 无法捕获 SocketException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12410803/