Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > C#:Foreach следующая итерация если возникло исключ


Автор: arsenium 1.6.2010, 23:21
Вообщем возник такой вот вопрос, немного даже вогнал в тупик...
К примеру имеем 
Код

ArrayList list

, который содержит в себе имена компьютеров сети.
Теперь мне нужно получить по этим именам список IP. Делаю следующее:

Код

foreach (string name in list)
                    {
                        addrs = Dns.GetHostAddresses(name);//получаю Ip по имени
                        nodeTreeNode = new TreeNode(name, 0, 0);
                        treeView1.Nodes.Add(nodeTreeNode);//добавляю этот ip в treeview1
                    }



Так вот, теперь возникла такая ситуация, что в списке list иммется имя компьютера который уже возможно выключился и при попытке получить ip по его имени, сразу возникает исключение: 
Код

System.Net.Sockets.SocketException


Которое оповещает, что хост не найден, и дальше уже foreach прекращает поиск, а мне бы хотелось, чтобы он переходил на следующую итерацию, при каждом имени вызывающем исключение 
Код

System.Net.Sockets.SocketException


Подскажите пожалуйста...

Автор: jonie 1.6.2010, 23:42
Код

foreach (string name in list)
                    {try{
                        addrs = Dns.GetHostAddresses(name);//получаю Ip по имени
                        nodeTreeNode = new TreeNode(name, 0, 0);
                        treeView1.Nodes.Add(nodeTreeNode);//добавляю этот ip в treeview1
} catch(Exception ex){ ....}
                    }
?
вообще перехватывать Exception не красиво, подробнее почитайте тут: http://msdn.microsoft.com/en-us/library/ms173160.aspx

Автор: Jamon 2.6.2010, 08:38
Ну так сделайте проверку доступности этого компа, например Ping'ом

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)