如何知道确切的函数抛出异常(Java)



我有两个函数(ServerSocket.accept()Socket.setSoTimeOut()),它们抛出IOException,SocketException扩展IOException。

如果我正在捕获IOException,我如何知道是哪个函数引发了这个异常?我应该在单独的try/catch块上调用这些函数吗?或者还有更合适的方法呢?

有两个catch块,一个用于SocketException,另一个用于IOException,怎么样。然后,您可以判断哪个方法调用被执行的catch块失败。

注意:SocketException的catch块应该放在第一位,这样代码才能有效并编译。

使用Exception对象的getStackTrace()方法。

我会将问题还原为"在哪个方法调用引发异常的情况下,我是否需要运行单独的逻辑"?如果答案是肯定的,那么确实需要两个try / catch块。

相关内容

最新更新