By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
437,751 Members | 1,149 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 437,751 IT Pros & Developers. It's quick & easy.

Error Handlers

P: n/a
How can I add a a row for every error? I know I did this before, but
lost the code. The reason that this is necessary: I want errors to
build into a table which is positioned absolutely (bottom: 1em; left:
1em). I can only have one copy of the table, otherwise errors overlap
each other.

What I have now doesn't work, and I'm not entirely sure why (I know
it's crappy code, but error handling is a black box indeed, plus this
is for a prototype CSS framework, so I'm not being picky):

http://pastebin.com/m29c58d92
Oct 8 '08 #1
Share this Question
Share on Google+
2 Replies


P: n/a
703designs escribió:
How can I add a a row for every error? I know I did this before, but
lost the code. The reason that this is necessary: I want errors to
build into a table which is positioned absolutely (bottom: 1em; left:
1em). I can only have one copy of the table, otherwise errors overlap
each other.
<?php
$errors = "<table class='phpError'>"
. "<tr><th>Level</th><th>Error</th><th>File</th><th>Line</th></tr>";
$errorCount = 0;

function golondrinaErrors($number, $string, $file, $line) {
global $errors;
global $errorCount;
$errorCount++;
$errors .= "<tr><td>" . $number . "</td>"
. "<td>" . $string . "</td>"
. "<td>" . $file . "</td>"
. "<td>" . $line . "</td>"
. "</tr>";
return true;
}
if($errorCount 0) {
$errors .= "</table>";
echo $errors;
}

set_error_handler('golondrinaErrors');

What this code seems to do is:

1. Set error count to zero
2. Print errors if error count is greater than zero
3. Tell PHP to user your custom error handler
4. Increase the error count when new errors found

You'd need to move the "print errors" part to the end of your script so
it has the chance of catching some errors before printing them.

Also, be aware that your error handler doesn't honor the @ operator and
it never aborts the script no matter the error type (might be what you
want or not).
--
-- http://alvaro.es - Álvaro G. Vicario - Burgos, Spain
-- Mi sitio sobre programación web: http://bits.demogracia.com
-- Mi web de humor al baño María: http://www.demogracia.com
--
Oct 8 '08 #2

P: n/a
Thanks Alvaro, that makes perfect sense. This is for only my own use,
mainly to catch missed includes (for wireframing), but I'll certainly
look into making it @-safe, which seems like an interesting topic to
me.

Thomas

On Oct 8, 11:05*am, "Álvaro G. Vicario"
<alvaroNOSPAMTHA...@demogracia.comwrote:
703designs escribió:
How can I add a a row for every error? I know I did this before, but
lost the code. The reason that this is necessary: I want errors to
build into a table which is positioned absolutely (bottom: 1em; left:
1em). I can only have one copy of the table, otherwise errors overlap
each other.
<?php
$errors = "<table class='phpError'>"
* * . "<tr><th>Level</th><th>Error</th><th>File</th><th>Line</th></tr>";
$errorCount = 0;
function golondrinaErrors($number, $string, $file, $line) {
* * global $errors;
* * global $errorCount;
* * $errorCount++;
* * $errors .= *"<tr><td>" . $number . "</td>"
* * * * . "<td>" . $string . "</td>"
* * * * . "<td>" . $file . "</td>"
* * * * . "<td>" . $line . "</td>"
* * * * . "</tr>";
* * return true;
}
if($errorCount 0) {
* * $errors .= "</table>";
* * echo $errors;
}
set_error_handler('golondrinaErrors');

What this code seems to do is:

1. Set error count to zero
2. Print errors if error count is greater than zero
3. Tell PHP to user your custom error handler
4. Increase the error count when new errors found

You'd need to move the "print errors" part to the end of your script so
it has the chance of catching some errors before printing them.

Also, be aware that your error handler doesn't honor the @ operator and
it never aborts the script no matter the error type (might be what you
want or not).

--
--http://alvaro.es- Álvaro G. Vicario - Burgos, Spain
-- Mi sitio sobre programación web:http://bits.demogracia.com
-- Mi web de humor al baño María:http://www.demogracia.com
--
Oct 8 '08 #3

This discussion thread is closed

Replies have been disabled for this discussion.