【发布时间】:2012-02-07 00:03:18
【问题描述】:
我有两个函数(ServerSocket.accept() 和 Socket.setSoTimeOut())分别抛出 IOException 和扩展 IOException 的 SocketException。
如果我捕获 IOException,我如何知道哪个函数抛出了这个异常? 我应该在单独的 try/catch 块上调用这些函数吗?还是有更合适的方法来做到这一点?
【问题讨论】:
-
堆栈跟踪将显示罪魁祸首。如果您捕获并记录,请使用带有 Exception/Throwable 参数的记录方法。
-
哎呀......我可以通过抓住他们两个来做到这一点!但是继承人应该是第一位的。我不知道订单是效果..
-
通常,从不
catch (IOException e) { /* nothing */ }。唯一可以接受什么都不做的情况是,当您知道异常永远不会发生时(使用反射时会发生这种情况),即便如此,最好还是重新抛出RuntimeException以防万一。 -
我不想在日志中看到..我想关闭套接字并继续运行..
标签: java exception ioexception