But I want to catch errors that are not suppressed with @. If I check if
error reporting is on, I will catch all of them or no one.

Regards,
Saša Stamenković


On Mon, Sep 28, 2009 at 1:36 PM, Karol Grecki <kgre...@gmail.com> wrote:

>
> There's answer for it in the code sample I gave you.
> Error handler will intercept all errors even if they were silenced with @
> operator.
> You need to check if error reporting is disabled at the time the error
> happens.
>
> Karol
>
>
> umpirsky wrote:
> >
> > Now I get a lot of crap catched :)
> > For example:
> >
> >
> fopen(/mnt/home/sasas/www/auto/application/controllers/ImagesController.php)
> > [ function.fopen function.fopen ]: failed to open stream: No
> > such file or directory in /mnt/home/sasas/www/Zend/Loader.php #165.
> >
> > which is ok, but this:
> >
> > fopen(/mnt/home/sasas/www/auto/application/views/helpers/FormLabel.php) [
> > function.fopen function.fopen ]: failed to open stream: No such
> > file or directory in /mnt/home/sasas/www/Zend/Loader.php #165.
> > fopen(/mnt/home/sasas/www/auto/application/views/helpers/FormLabel.php) [
> > function.fopen function.fopen ]: failed to open stream: No such
> > file or directory in /mnt/home/sasas/www/Zend/Loader.php #165.
> > fopen(/mnt/home/sasas/www/auto/application/views/helpers/FormSelect.php)
> [
> > function.fopen function.fopen ]: failed to open stream: No such
> > file or directory in /mnt/home/sasas/www/Zend/Loader.php #165.
> > fopen(/mnt/home/sasas/www/auto/application/views/helpers/FormButton.php)
> [
> > function.fopen function.fopen ]: failed to open stream: No such
> > file or directory in /mnt/home/sasas/www/Zend/Loader.php #165.
> > fopen(/mnt/home/sasas/www/auto/application/views/helpers/FormButton.php)
> [
> > function.fopen function.fopen ]: failed to open stream: No such
> > file or directory in /mnt/home/sasas/www/Zend/Loader.php #165.
> > fopen(/mnt/home/sasas/www/auto/application/views/helpers/Form.php) [
> > function.fopen function.fopen ]: failed to open stream: No such
> > file or directory in /mnt/home/sasas/www/Zend/Loader.php #165.
> > fopen(/mnt/home/sasas/www/auto/application/views/helpers/Form.php) [
> > function.fopen function.fopen ]: failed to open stream: No such
> > file or directory in /mnt/home/sasas/www/Zend/Loader.php #165.
> > fopen(/mnt/home/sasas/www/auto/application/views/helpers/Layout.php) [
> > function.fopen function.fopen ]: failed to open stream: No such
> > file or directory in /mnt/home/sasas/www/Zend/Loader.php #165.
> > fopen(/mnt/home/sasas/www/auto/application/views/helpers/Layout.php) [
> > function.fopen function.fopen ]: failed to open stream: No such
> > file or directory in /mnt/home/sasas/www/Zend/Loader.php #165.
> >
> > which is strange, why loader looks for helpers in my helpers path, and
> not
> > in zf library first?
> >
> > Regards,
> > Saša Stamenković
> >
> >
> > On Mon, Sep 28, 2009 at 1:08 PM, Саша Стаменковић
> > <umpir...@gmail.com>wrote:
> >
> >> Nice answer Grecki, thanks.
> >> require_once 'controllers/ErrorController.php';
> >> set_error_handler(array('ErrorController', 'phpError'));
> >>
> >> fixed problem. Strange :)
> >>
> >> Regards,
> >> Saša Stamenković
> >>
> >>
> >>
> >> On Mon, Sep 28, 2009 at 1:03 PM, Karol Grecki <kgre...@gmail.com>
> wrote:
> >>
> >>>
> >>> If you named your functions differently you need to modify the code
> >>> accordingly.
> >>> Also, make sure that this class is actually loaded or can be loaded
> with
> >>> autoloader before you try to use it and register the error handler.
> >>>
> >>> Regards
> >>> Karol
> >>>
> >>>
> >>>
> >>> umpirsky wrote:
> >>> >
> >>> > *Warning*: set_error_handler() expects the argument
> >>> > (ErrorController::phpError) to be a valid callback in *
> >>> > /mnt/home/sasas/www/auto/application/Bootstrap.php* on line *16*
> >>> >
> >>> > Regards,
> >>> > Saša Stamenković
> >>> >
> >>> >
> >>> > On Mon, Sep 28, 2009 at 12:29 PM, Karol Grecki <kgre...@gmail.com>
> >>> wrote:
> >>> >
> >>> >>
> >>> >> Try this, it works for me.
> >>> >>
> >>> >> class X_Error_Handler
> >>> >> {
> >>> >>    public static function handle($errno, $errstr, $errfile,
> $errline)
> >>> >>    {
> >>> >>        //this allows error suppression in 3rd party code to work
> >>> >>        if (!error_reporting()) return;
> >>> >>
> >>> >>        throw new X_RuntimeException($errstr . " in
> >>> $errfile:$errline",
> >>> >> $errno);
> >>> >>    }
> >>> >>
> >>> >>    public static function set()
> >>> >>    {
> >>> >>        set_error_handler(array(__CLASS__, 'handle'));
> >>> >>    }
> >>> >> }
> >>> >>
> >>> >> Then you call X_Error_Handler::set() in your bootstrap and built in
> >>> php
> >>> >> errors will bubble up to error controller as exceptions.
> >>> >> Bear in mind there are some limitation to it, like fatal errors
> >>> cannot
> >>> be
> >>> >> handled this way and not everything can be captured in the error
> >>> >> controller.
> >>> >> You need a try-catch block around your whole dispatch loop to catch
> >>> >> errors
> >>> >> in plugins etc.
> >>> >>
> >>> >> Regards
> >>> >> Karol
> >>> >>
> >>> >>
> >>> >> umpirsky wrote:
> >>> >> >
> >>> >> > I'm trying to do this with set_error_handler(), my will is to
> >>> trigger
> >>> >> > Error
> >>> >> > controller and catch this as application error, since I want to
> log
> >>> all
> >>> >> > errors in one place - Error controller.
> >>> >> > I tried with setting error handler in bootstrap to function in
> >>> >> index.php
> >>> >> > and
> >>> >> > that function calls error controller statically, but no success.
> >>> There
> >>> >> > must
> >>> >> > be some easy way to do this.
> >>> >> >
> >>> >> > Anyone know?
> >>> >> >
> >>> >> > Regards,
> >>> >> > Saša Stamenković
> >>> >> >
> >>> >> >
> >>> >>
> >>> >> --
> >>> >> View this message in context:
> >>> >>
> >>>
> http://www.nabble.com/Turn-PHP-errors-warnings-notices-into-exceptions-tp25591556p25643507.html
> >>> >> Sent from the Zend Framework mailing list archive at Nabble.com.
> >>> >>
> >>> >>
> >>> >
> >>> >
> >>>
> >>> --
> >>> View this message in context:
> >>>
> http://www.nabble.com/Turn-PHP-errors-warnings-notices-into-exceptions-tp25591556p25643850.html
> >>> Sent from the Zend Framework mailing list archive at Nabble.com.
> >>>
> >>>
> >>
> >
> >
>
> --
> View this message in context:
> http://www.nabble.com/Turn-PHP-errors-warnings-notices-into-exceptions-tp25591556p25644229.html
> Sent from the Zend Framework mailing list archive at Nabble.com.
>
>

Reply via email to