有两个catch块,一个用于SocketException,另一个用于IOException,怎么样。然后,您可以判断哪个方法调用被执行的catch块失败。
我有两个函数(ServerSocket.accept()
和Socket.setSoTimeOut()
),它们抛出IOException,SocketException扩展IOException。
如果我正在捕获IOException,我如何知道是哪个函数引发了这个异常?我应该在单独的try/catch块上调用这些函数吗?或者还有更合适的方法呢?
注意:SocketException的catch块应该放在第一位,这样代码才能有效并编译。
使用Exception对象的getStackTrace()方法。
我会将问题还原为"在哪个方法调用引发异常的情况下,我是否需要运行单独的逻辑"?如果答案是肯定的,那么确实需要两个try / catch
块。