Examples TOCexamples

Display handler - part 4.

$Date: 2004/08/07 14:28:59 $

 Table of contents

Introduction

This example requires :


This example will show you how to handle html_progress api exceptions without die.

An error was volontary made on call of setAnimSpeed method (line 14). It's an API exception, and we have decided to push and logs this error (lines 4 thru 10, and 11), so only lines 16 thru 20 will be executed.

display_errors

Print out errors (as a part of the output). For production web sites, you're strongly encouraged to turn this feature off, and use error logging instead. Keeping display_errors enabled on a production web site may reveal security information to end users, such as file paths on your Web server, your database schema or other information.

1 <?php ini_set('display_errors', false); ?>

log_errors

Log errors into a log file (server-specific log, stderr, syslog ...) As stated above, you're strongly advised to use error logging in place of error displaying on production web sites.

1 <?php ini_set('log_errors', true); ?>

 Render options

Default options below are used :

Only option changed is :

Legend for lineFormat: Legend for contextFormat:

[Top]

 Output

Exception: invalid input, parameter #1 "$delay" was expecting "integer", instead got "string" in html_progress::setanimspeed (file d:\php\pear\html_progress\examples\errorstack\secure\display_errors-p4.php at line 14)

Catch PEAR_Error

[pear_error: message="invalid input, parameter #1 "$delay" was expecting "integer", instead got "string"" code=-100 mode=return level=error prefix="" info="Array"]

[Top]

 PHP source syntax highlight

  1. <?php
  2. require_once 'HTML/Progress.php';
  3.  
  4. function _pushCallback($err)
  5. {
  6.     // now don't die if the error is an exception
  7.     if ($err['level'] == 'exception') {
  8.         return HTML_PROGRESS_ERRORSTACK_PUSHANDLOG;
  9.     }
  10. }
  11. $logger['push_callback'] = '_pushCallback';
  12.  
  13. $bar = new HTML_Progress($logger);
  14. $e = $bar->setAnimSpeed('100');   // < - - - will generate an API exception
  15.  
  16. if (is_object($e)) {
  17.     if (is_a($e,'PEAR_Error')) {
  18.         die('<h1>Catch PEAR_Error</h1>'.$e->toString());
  19.     }
  20. }
  21.  
  22. if ($bar->hasErrors()) {
  23.     $err = $bar->getError();
  24.     echo '<pre>';
  25.     print_r($err);
  26.     echo '</pre>';
  27.     die('<h1>Catch HTML_Progress error</h1>');
  28. }
  29. ?>

[Top]