Jump to content


Photo

Da Skip Em Error E Continua Processando O Script


  • Faça o login para participar
2 replies to this topic

#1 Khrysller

Khrysller

    Novato no fórum

  • Usuários
  • 2 posts
  • Sexo:Não informado

Posted 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.

Edição feita por: Khrysller, 08/05/2007, 16:32.


#2 silici0

silici0

    ?

  • Usuários
  • 902 posts
  • Sexo:Masculino
  • Localidade:São Paulo - SP
  • Interesses:PHP, MySQL, XHTML, CSS, AJAX, JavaScript, Objective-C, Python, Games ... #geek

Posted 08/05/2007, 20:14

Uma das maneiras é o @ ;

PAra saber mais da uma olhada em:
http://br.php.net/ma...rrorcontrol.php

Abraços
Procurando freelancer
***********************************************
Bachelor of Technology in Technology of Information, with great knowledge in Windows operating systems and Unix-Like (BSD, Ubuntu and Slackware), languages (PHP, JavaScript and MySQL), semantic (DHTML, Tableless, Ajax, MVC, OO) and analysis (manages projects based on PMI).
Developer in PHP, JAVA, Python, Objective-c MySQL, DHTML, CSS, JAVASCRIPT, JQUERY, JSON, SMARTY, MDB2, DOCTRINE, CAKEPHP. Linux desktop for work and MacOS. E-commerces, CRM and bussiness strategys
Love-me and be FREE use UniCes-Like .

#3 savior

savior

    Campanha [codebox], use ou morra :D

  • Usuários
  • 1229 posts
  • Sexo:Masculino
  • Localidade:Curitiba, PR - Brasil
  • Interesses:Na vida ;P

Posted 09/05/2007, 09:37

Desabilitando o error reporting tambem pode ;]

http://br2.php.net/error-reporting

[lastfm] [blog]

Campanha codebox: use-a ou morra!
bfmaster_duran[at]yahoo.com.br





1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq