Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem z operatorem błędu @
eMartio
post
Post #1





Grupa: Zablokowani
Postów: 46
Pomógł: 0
Dołączył: 12.01.2006

Ostrzeżenie: (10%)
X----


Mam problem z wytłumieniem komunikatu o błędzie operatorem błędu @. Otoż mam tak ustawioną obsługę błędów:

  1. <?php
  2. ini_set('error_reporting', E_ALL ^ E_NOTICE);
  3. ?>


Teraz uruchamiam plik test.php
  1. <?php
  2.  
  3. $my_file = @file('nieistniejący_plik');
  4.  
  5. ?>


Wszystko działa, błąd nie zostanie wyświetlony.

Jednak kiedy przekażę obsługę błędów własnej funkcji, błąd (ostrzeżenie wykonania: E_WARNING) zostaje wyświetlony:
  1. <?php
  2.  
  3. set_error_handler(array('Klasa', 'Metoda'), E_ALL ^ E_NOTICE);
  4.  
  5. ?>


Pomimo, że jest ustawiony taki sam poziom raportowania. Musiałbym dodać jeszcze ^ E_WARNING, ale nie chcę tego robić, gdyż niektóre ostrzeżenia muszą się pojawić, np. te nie wytłumione operatorem @.

Co muszę zrobić, aby nie pokazywał ostrzeżeń wytłumionych operatorem błędów? Używam php 5.1.2.

Proszę o pilną pomoc.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




  1. <?php
  2. function blad($errno, $errstr){
  3.  
  4. if(error_reporting() == 0) // error_reporting() = 0, so it was called with @ in front of it
  5. {
  6.  echo 'nic nie wyswietlam, gdyz byla malpa';
  7. }
  8. else
  9. {
  10. echo 'wyswietlam errora, gdyz nie bylo malpy:<br />'.$errstr;
  11. }
  12.  
  13. }
  14. set_error_handler('blad', E_ALL ^ E_NOTICE);
  15. @file('sdfsdf');
  16.  
  17. ?>
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 4.10.2025 - 15:29