Grails Controller - 无法捕获 SocketException

标签 grails exception grails-2.0

当我尝试在 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/

相关文章:

Java:在 MetalFileChooserUI$IndentIcon.getIconWidth 中防止 NPE?

grails - 在grails中使用HTTP GET调用时,字段值呈现为空

spring-security - 如何在grails中导入Authentication和SecurityContextHolder

grails - 在 Controller 中使用快捷方式重定向

grails - 如何在Grails中获取所有与插件相关的JAR?

grails - 像 spree spree 之类的东西吗?

java - Grails 中的 servletContext 在哪里可用?

wpf - 如何将绑定(bind)错误转化为运行时异常?

c# - 捕获所有内部异常详细信息的最佳做法是什么?

java - 在时间 X 和时间 Y 之间/时间段内查找对象