PEAR::setErrorHandling()

PEAR::setErrorHandling()

PEAR::setErrorHandling() -- Fija el manejo de errores generados por paquetes de PEAR

Synopsis

require_once 'PEAR.php';

void PEAR::setErrorHandling ([integer $mode = NULL [, mixed $options = NULL]])

Descripción

setErrorHandling() puede ser invocado tanto como método estándar de un objeto ($obj->setErrorHandling) como un método estático (PEAR::setErrorHandling). Si es llamado estáticamente, PEAR::setErrorHandling() fija el modo de error por defecto para todos los objetos derivados de PEAR (comportamiento de gestión de errores global). Si es llamado como método de un objeto $obj->setErrorHandling() fija el modo de error por defecto sólo para ese objeto (comportamiento de gestión de errores local).

Parámetro

Aquí hay un ejemplo de varios modos de empleo de setErrorHandling:
<?php
require_once 'PEAR.php';
// te&oacute;rica constante de error para este ejemplo
define('MYCLASS_ERROR_CODE', 1);

// demostraci&oacute;n de gesti&oacute;n de errores global
// en este caso, todos los Errores PEAR lanzar&aacute;n una alerta de PHP
PEAR::setErrorHandling(PEAR_ERROR_TRIGGER, E_USER_WARNING);
// Notar que el archivo y el n&uacute;mero de l&iacute;nea van a esta ren el constructor de PEAR_Error
// en PEAR.php
PEAR::raiseError('test warning', MYCLASS_ERROR_CODE);

// este error especifica un modo, y sobreescribe el manejo de errores global por defecto
$e = PEAR::raiseError('return only', MYCLASS_ERROR_CODE, PEAR_ERROR_RETURN);

PEAR::setErrorHandling(PEAR_ERROR_PRINT, "Gronk error: %s<br />\n");

// imprimir&aacute; "Gronk error: test warning<br />\n"
PEAR::raiseError('test warning', MYCLASS_ERROR_CODE);

/**
 * Falsa clase para demostrar el manejo de errores
 * @package myClass
 */
class myClass extends PEAR {
    /**
     * Demonstraci&oacute;n de gesti&oacute;n de errores local por defecto
     */
    function myClass()
    {
        // m&eacute;todo callback del objeto
        $this->setErrorHandling(PEAR_ERROR_CALLBACK, array(&$this, 'handleErr'));
        // imprimir&aacute; "custom handler...is working"
        PEAR::raiseError('custom handler', MYCLASS_ERROR_CODE);
        // m&eacute;todo callback de clase est&aacute;tica
        $this->setErrorHandling(PEAR_ERROR_CALLBACK,
            array('myClass', 'handleErrStatic'));
        PEAR::raiseError('custom handler', MYCLASS_ERROR_CODE);
        // funci&oacute;n callback
        $this->setErrorHandling(PEAR_ERROR_CALLBACK, 'standardCallback');
        PEAR::raiseError('custom handler', MYCLASS_ERROR_CODE);
    }

    /**
     * Callback fijado por el constructor
     * @param PEAR_Error El objeto de error
     */
    function handleErr($error)
    {
        $this->lastError = $error->getMessage();
        print $error->getMessage() . "...is working\n";
    }

    /**
     * Callback est&aacute;tico fijado por el constructor
     *
     * Notar que en PHP 5, $this no se fija si el m&eacute;todo es declarado con
     * el modificador de acceso "static".  En PHP 4, $this es fijado, pero no
     * al objeto myClass, por tanto &iexcl;no lo uses!
     * @param PEAR_Error El objeto de error
     * @static
     */
    function handleErrStatic($error)
    {
        print 'static ' . $error->getMessage() . "...is working\n";
    }
}

/**
 * @param PEAR_Error El objeto de error
 */
function standardCallback($error)
{
    print 'normal function callback: ' . $error->getMessage();
}
// Esto causa la impresi&oacute;n de tres mensajes por parte de los callbacks de error:
// "custom handler...is working"
// "static custom handler... is working"
// "normal function callback: custom handler"
$mine = new myClass;

PEAR::setErrorHandling(PEAR_ERROR_DIE);
// termina el script con el mensaje de error "oops"
PEAR::raiseError('oops', MYCLASS_ERROR_CODE);
?>