обработка ошибок php в цикле while

У меня есть следующий код, чтобы получить статус батареи с помощью команд WMIC. im получение нашей сети всех IP-адресов из базы данных mysql. при запуске кода ... если есть удаленный компьютер, на котором сервер RPC недоступен, он выдает фатальную ошибку. что я хочу, если есть какая-либо ошибка с IP-адресом, отобразите этот IP-адрес и пользовательское сообщение об ошибке и перейдите к следующему IP-адресу, не останавливаясь оттуда.

$sel="select * from nmap_hosts_xml";
    $sel_r=mysql_query($sel);
    while($row1=mysql_fetch_array($sel_r))
    {
        $ip=$row1['address_addr'];
        $os=$row1['os_osmatch_name'];


        $obj = new COM ( "WbemScripting.SWbemLocator" ); 
$obj=$obj->ConnectServer($ip, "root/CIMV2","domain/Username","Password");
$battery=   $obj->ExecQuery("Select * from Win32_Battery");

foreach ( $battery as $wmi_bat )
{
    $bat = $wmi_bat->BatteryStatus;
}

echo $ip." ".$bat."<br>";

    }

person DAM_86    schedule 23.05.2013    source источник


Ответы (1)


Добавьте в цикл блок try / catch.

person Niche    schedule 23.05.2013
comment
привет @niche im не так много знаком с обработкой ошибок php. можете ли вы направить меня к правильному примеру, который использует try / catch внутри цикла while? - person DAM_86; 23.05.2013
comment
Здесь ссылка на другую ветку, связанную с вашим вопрос. В вашем случае я бы поместил блок try / catch внутрь цикла, потому что вы пытаетесь вывести результат итерации через IP-адреса. - person Niche; 23.05.2013
comment
tnx @ niche.i решил проблему, используя вашу ссылку. и я поместил try / catch внутрь цикла. - person DAM_86; 23.05.2013