Jump to content


Khrysller

Member Since 22/12/2004
Offline Last Active 13/12/2007, 11:13
-----

Topics I've Started

Da Skip Em Error E Continua Processando O Script

08/05/2007, 16:31

Srs e Sras, Bom Dia/Tarde/Noite,

Estou desenvolvendo uma solução em PHP bem pequena e essa solução já faz o que precisa ser feito na boa... o que eu gostaria de implementar é um tratamento de errors, nesse caso seria: Sem que houver um erro, ignore e continue processando o script... Em ASP isso é feito usando o 'On Error Resume Next' e por aí vai... mas em PHP qual seria a equivalência?

Minha solução é uma consulta SNMP em um conjunto de equipamentos, e caso 1 desses equipamentos fique off-line eu acabo perdendo a visualização de toda a lista.

Um parcial do código é esse:

<?php

$D2_host = '172.22.11.111';
$D2_community = 'public';
$D2_local= snmpget("$D2_host", $D2_community, ".1.3.6.1.2.1.1.6.0");
$D2_equipamento= snmpget("$D2_host", $D2_community, ".1.3.6.1.2.1.1.5.0");
$D2_contato = snmpget("$D2_host", $D2_community, ".1.3.6.1.2.1.1.4.0");
$D2_tempo_de_bateriaget= snmpget("$D2_host", $D2_community, ".1.3.6.1.4.1.318.1.1.1.2.2.3.0");
$D2_tempo_de_bateria = preg_replace('#^.*?\)\s*(\d+:\d+).*?$#s', '\\1', $D2_tempo_de_bateriaget);
$D2_temperaturaget = snmpget("$D2_host", "$D2_community", ".1.3.6.1.4.1.318.1.1.2.1.1.0");
$D2_temperatura = eregi_replace("Gauge32:","",$D2_temperaturaget);
$D2_umidadeget= snmpget("$D2_host", "$D2_community", ".1.3.6.1.4.1.318.1.1.2.1.2.0");
$D2_umidade= eregi_replace("Gauge32:","",$D2_umidadeget);

$D4_host = '172.22.22.222';
$D4_community = 'public';
$D4_local= snmpget("$D4_host", $D4_community, ".1.3.6.1.2.1.1.6.0");
$D4_equipamento= snmpget("$D4_host", $D4_community, ".1.3.6.1.2.1.1.5.0");
$D4_contato = snmpget("$D4_host", $D4_community, ".1.3.6.1.2.1.1.4.0");
$D4_tempo_de_bateriaget= snmpget("$D4_host", $D4_community, ".1.3.6.1.4.1.318.1.1.1.2.2.3.0");
$D4_tempo_de_bateria = preg_replace('#^.*?\)\s*(\d+:\d+).*?$#s', '\\1', $D4_tempo_de_bateriaget);
$D4_temperaturaget = snmpget("$D4_host", "$D4_community", ".1.3.6.1.4.1.318.1.1.2.1.1.0");
$D4_temperatura = eregi_replace("Gauge32:","",$D4_temperaturaget);
$D4_umidadeget= snmpget("$D4_host", "$D4_community", ".1.3.6.1.4.1.318.1.1.2.1.2.0");
$D4_umidade= eregi_replace("Gauge32:","",$D4_umidadeget);

$D5_host = '172.22.333.333';
$D5_community = 'public';
$D5_local= snmpget("$D5_host", $D5_community, ".1.3.6.1.2.1.1.6.0");
$D5_equipamento= snmpget("$D5_host", $D5_community, ".1.3.6.1.2.1.1.5.0");
$D5_contato = snmpget("$D5_host", $D5_community, ".1.3.6.1.2.1.1.4.0");
$D5_tempo_de_bateriaget= snmpget("$D5_host", $D5_community, ".1.3.6.1.4.1.318.1.1.1.2.2.3.0");
$D5_tempo_de_bateria = preg_replace('#^.*?\)\s*(\d+:\d+).*?$#s', '\\1', $D5_tempo_de_bateriaget);
$D5_temperaturaget = snmpget("$D5_host", "$D5_community", ".1.3.6.1.4.1.318.1.1.2.1.1.0");
$D5_temperatura = eregi_replace("Gauge32:","",$D5_temperaturaget);
$D5_umidadeget= snmpget("$D5_host", "$D5_community", ".1.3.6.1.4.1.318.1.1.2.1.2.0");
$D5_umidade= eregi_replace("Gauge32:","",$D5_umidadeget);
?>

Ou seja, se o primeiro bloco não conseguir ser executado devido ao equipamento estar off-line, todo o restante do bloco se compromete.

Alguém poderia lançar uma luz em como ignorar o erro e continuar a processar o script?

Muito obrigado.

IPB Skin By Virteq