PHP Manual

PEAR Manual

Smarty Manual

PostgreSQL

MySQL Manual

Perl Manual

pear::seterrorhandling()

pear::seterrorhandling() -- ustala obsługę błędów wygenerowanych przez pakiety pear

opis

seterrorhandling() może być wywołana zarówno jako typowa metoda obiektu ($obj->seterrorhandling) jak również jako statyczna metoda (pear::seterrorhandling). jeśli wywołana statycznie, pear::seterrorhandling() ustawia obsługę błędów dla wszystkich obiektów pear (globalna obsługa błędów). jeśli wywołana jako metoda obiektu $obj->seterrorhandling() ustawia domyślną obsługę błędu tylko dla tego obiektu (lokalna obsługa błędu).

parametr

  • integer $mode - jedna z poniższych stałych

    • pear_error_return jeśli wystąpi bład, zwracany jest pear_error z metody generacji błędu (zazwyczaj raiseerror().)

    • pear_error_print podobnie jak pear_error_return, jednak dodatkowo zostanie wyświetlony komunikat o błędzie.

    • pear_error_trigger podobnie jak pear_error_return, jednak wbudowana w php funkcja trigger_error() zostanie wywołana w konstruktorze pear_error z przekazanym komunikatem błędu.

    • pear_error_die skrypt zakończy działanie i komunikat o błedzie zostanie wyświetlony w chwili tworzenia pear_error.

    • pear_error_callback jeśli wystąpi bład, funkcja zwrotna przekazana w $options jest wywołana.

    • pear_error_exception jeśli obecny jest silnik zend engine 2, zostanie wywołany przy użyciu obiektu pear_error.

  • mixed $options - wartość dla $options zależna od $mode

    • pear_error_print oraz pear_error_die wspierają dodatkowy ciąg znaków printf() używany podczas wyświetlania komunikatu o błedzie. ten ciąg znaków powinien zawierać pojedynczy %s, który będzie użyty do wstawienia komunikatu o błedzie. użyj tego do zawarcia komunikatu o błedzie w innych pożytecznych informacjach nie dołączonych w prefiksie komunikatu lub samym komunikacie.

    • pear_error_trigger wymaga od użytkownika stałej okreslającej poziom błedu używany przez trigger_error() (możliwe wartości: e_user_notice, e_user_warning lub e_user_error). pamiętaj, że jeśli stała ta nie jest jedną z tych wartości, wywołane zostanie ostrzeżenie php.

    • pear_error_callback funkcja callback musi być funkcją w formacie opisanym w sekcji pseudo-typ podręcznika php (ciąg znaków lub tablica). funkcja musi przyjmować jeden parametr, obiekt pear_error wygenerowany przez warunek błędu. jeśli nie jest to prawidłowa funkcja callback, wywołane zostanie ostrzeżenie php.

oto kilka sposobów użycia seterrorhandling:

<?php require_once 'pear.php'; // fikcyjna sta&lstrok;a specjalnie dla tego przyk&lstrok;adu define('myclass_error_code', 1);  // demonstracja globalnej obs&lstrok;ugi b&lstrok;&eogon;d&oacute;w // w tym przypadku, wszystkie b&lstrok;&eogon;dy pear wywo&lstrok;aj&aogon; ostrze&zdot;enie php pear::seterrorhandling(pear_error_trigger, e_user_warning); // pami&eogon;taj, &zdot;e nazwa pliku i numer linii b&eogon;d&aogon; dost&eogon;pne w konstruktorze // pear_error w pear.php pear::raiseerror('test warning', myclass_error_code);  // ten b&lstrok;&aogon;d wymaga trybu i nadpisuje domy&sacute;ln&aogon; globaln&aogon; obs&lstrok;ug&eogon; b&lstrok;edu. $e = pear::raiseerror('return only', myclass_error_code, pear_error_return);  pear::seterrorhandling(pear_error_print, "gronk error: %s<br />\n");  // wypisuje "gronk error: test warning<br />\n" pear::raiseerror('test warning', myclass_error_code);  /**  * fikcyjna klasa to zademonstrowania obs&lstrok;ugi b&lstrok;&eogon;d&oacute;w  * @package myclass  */ class myclass extends pear {     /**      * demonstracja domy&sacute;lnej lokalnej obs&lstrok;ugi b&lstrok;&eogon;d&oacute;w      */     function myclass()     {         // metoda callback          $this->seterrorhandling(pear_error_callback, array(&$this, 'handleerr'));         // wypisuje "custom handler...is working"         pear::raiseerror('custom handler', myclass_error_code);         // statyczna metoda callback         $this->seterrorhandling(pear_error_callback,             array('myclass', 'handleerrstatic'));         pear::raiseerror('custom handler', myclass_error_code);         // funkcja callback         $this->seterrorhandling(pear_error_callback, 'standardcallback');         pear::raiseerror('custom handler', myclass_error_code);     }          /**      * callback ustawiany przez konstruktor      * @param pear_error obiekt b&lstrok;edu      */     function handleerr($error)     {         $this->lasterror = $error->getmessage();         print $error->getmessage() . "...is working\n";     }          /**      * statyczny callback ustawiany w konstruktorze      *      * w php 5, $this nie jest ustawiane je&sacute;li metoda jest zadeklarowana z      * trybem dost&eogon;pu static. w php 4 jest ustawiany, ale nie na obiekt klasy      * myclass, wi&eogon;c nie u&zdot;ywaj go!      * @param pear_error obiekt b&lstrok;edu      * @static      */     function handleerrstatic($error)     {         print 'static ' . $error->getmessage() . "...is working\n";     } }  /**  * @param pear_error the error object  */ function standardcallback($error) {     print 'normal function callback: ' . $error->getmessage(); } // to powoduje wy&sacute;wietlenie trzech komunikat&oacute;w za pomoc&aogon; callback&oacute;w. // "custom handler...is working" // "static custom handler... is working" // "normal function callback: custom handler" $mine = new myclass;  pear::seterrorhandling(pear_error_die); // ko&nacute;czy dzia&lstrok;anie skryptu z komunikatem "oops" pear::raiseerror('oops', myclass_error_code); ?>