假设您设计了一个System.IO.Stream扩展MyStream,它的Read方法可以超时,那么您宁愿抛出哪种异常类型:
System.IO.IOException (如System.Net.Sockets.NetworkStream) orSystem.TimeoutException (如System.IO.Ports.SerialPort)或System.Net.Sockets.NetworkStream)?发布于 2011-11-22 17:27:49
如果例外情况是Stream将“超时”,那么我将亲自使用TimeoutException。这是非常清楚的,如果这是根本原因的话,也是非常恰当的。
IOException由NetworkStream使用,但含义不同。在这种情况下,这通常是因为基础套接字已经关闭,这防止了读/写发生.
发布于 2011-11-22 17:31:28
您使用的是TimeoutException,它最准确地传达了实际发生的情况。
IOException更多的是一个通用的例外;如果在读取Stream的底层备份存储时发生了什么事情,而没有一个特定的异常,那么我希望会有一个IOException。
TimeoutException是这里的标准,所以就这样吧。
发布于 2019-11-13 05:46:02
当网络流超时时,IOException.InnerException是SocketException,IOException.InnerException.SocketErrorCode是SocketError.TimedOut。
我希望它只是抛出一个TimeoutException,所以我不需要测试这个奇怪的情况。
https://stackoverflow.com/questions/8230909
复制相似问题