我在做一些.NET編碼的今天,我遇到了一些我以前沒有想到的 - 許多微軟的內置測試網絡連接(平,TCP套接字等)的方法是約拋出異常非常寬鬆如果連接失敗。可以使用網絡異常來控制流量嗎?
當然,在一般情況下這不是很好用在你的程序的控制流異常。我很好奇,但 - 如果.NET庫,以便隨手扔,我怎樣才能避免這樣的事情(藉口可能是亂碼,只是拼湊爲例):
bool TestConnection(string host)
{
bool connected;
Ping ping = new Ping();
PingReply reply = ping.Send(host);
connected = (reply.Status == IPStatus.Success);
return connected; // possibly won't return false because of exceptions
}
我可以用一個try-catch
塊來處理這個異常,但我所做的只是將connected
設置爲false。因爲我拋棄了異常的所有信息,是不是基本上吞噬了異常?這裏最好的做法是什麼?
這是*從預期異常*恢復並讓無法處理的情況*冒泡*之間的區別。如果只是一個'布爾'沒有捕獲正常狀態(成功,超時,無路由或任何*想知道*),可能會增加返回的信息。 – 2011-02-15 18:07:46