+1  A: 

Am I looking at this from COMPLETELY the wrong angle?

Yes. If you can't trust your database to handle I/O errors, you're missing the point of using a database.

The usual drill is to do as little as possible in your stored procedures. Your PHP program will get errors and exceptions and that's what you wanted to happen. Since PHP will get the exceptions, what are you worrying about? Just let them pop out of your stored procedure.

Your PHP will have to "alert the user that something has broken".

If you want to somehow "wrap" all your stored procedure in some kind of error logging, do this in PHP. Don't mess with over-writing your stored procedures. Don't worry about I/O errors. You have a database to handle that.

S.Lott