Login   Register  
PHP Classes
elePHPant
Icontem

File: myXML/error_test.php

Recommend this page to a friend!
Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  Classes of Tereshchenko Andrey  >  myXML  >  myXML/error_test.php  >  Download  
File: myXML/error_test.php
Role: Example script
Content type: text/plain
Description: Example of error handling
Class: myXML
DOM/XPath/XSLT implemented in php.
Author: By
Last change:
Date: 10 years ago
Size: 3,158 bytes
 

Contents

Class file image Download
<?php
/**
* This script illustrates how to use function "raiseError()".
*/

// Set the search path.
ini_set('include_path'$_SERVER['DOCUMENT_ROOT'].'/PEAR');

require_once(
'Error.php');

// it is possible to use directly in the script.
// after call, raises warning in line 13
raiseError('Test error, raises directly in the script'E_USER_WARNING);

// it is possible to use insidethe function.
function Simple()
{
    
raiseError('Test error, raises inside the function'E_USER_WARNING);
}

// after call function, raises warning inline 22.
Simple();

// it is possible to use inside a class with intermediate function.
class SimpleClass
{
    function 
SimpleClass()
    {
        
$this->SimpleException();
    }
    
    function 
SimpleException()
    {
        
/**
        * The constructor of a class uses this method for check. That the debug
        * information was displayed not for the constructor, and for function
        * calling it, we specify callLevel = 3. If method called directly, we
        * specify callLevel = CLASS_LEVEL.
        */
        
$callLevel = (getCallerMethod() == 'simpleclass') ? CLASS_LEVEL;
        
$this->raiseError('Test Exception'E_USER_WARNING$callLevel);
    }
    
    
/**
    * That the debug information was displayed for caller function, the
    * parameter $callLevel is specified CLASS_LEVEL.
    */
    
function raiseError($message$type$callLevel CLASS_LEVEL)
    {
        
$message 'SimpleClass error: '.$message;
        
raiseError($message$type$callLevel);
    }
}

// after call constructor, raises warning in line 56.
$simple = new SimpleClass;

// after call method, raises warning in line 59.
$simple->SimpleException();

// it is possible to use user-defined error handler.
function handleError($message$type$file$line)
{
    print 
'<br>Called user-defined error handler';
    exit(
"<br>Error: $message in $file on line $line");
}

// Other example of error handling with use of class PEAR.
class PEAR_Class extends PEAR
{
    function 
PEAR_Class()
    {
        
$this->PEAR('Class_Error');
    }
    
    function 
SimpleException()
    {
        
$this->raiseError('Test Exception');
    }
    
    function 
runSimpleException()
    {
        
$this->SimpleException();
    }
}

class 
Class_Error extends Error
{
    var 
$error_message_prefix 'PEAR_Class error: ';
    var 
$skipClass 'pear_class';
    
    function 
Class_Error($message 'unknown error'$code null,
                         
$mode null$options null$userinfo null)
    {
        
$this->Error($message$code$mode$options$userinfo);
    }
}

$simple = new PEAR_Class;

// after call method, raises error in line 102
$simple->SimpleException();

// after call method, raises error in line 105
$simple->runSimpleException();

// sets design mode
$GLOBALS['_Design_Mode'] = true;

// after this call, raises error in line 83
$simple->runSimpleException();

// sets a user-defined error handler function.
setErrorHandler('handleError');

$simple->SimpleException();

?>