За последние 24 часа нас посетили 49764 программиста и 1757 роботов. Сейчас ищут 784 программиста ...

обработка ошибок

Тема в разделе "Прочие вопросы по PHP", создана пользователем Dimasick, 21 ноя 2015.

  1. Dimasick

    Dimasick Активный пользователь

    С нами с:
    30 апр 2011
    Сообщения:
    57
    Симпатии:
    0
    Хочу, чтобы при возникновении ошибки программа выдавала слово "Oooops", но не прерывала работу (т.е. доходила до finish). Вот так все работает:
    Код (PHP):
    1. <?php
    2. function myErrorHandler ($errno, $errstr, $errfile, $errline) {echo "oooops";}
    3. set_error_handler("myErrorHandler");
    4. $s  = "function f() { return 1/0; } return 1;";
    5. if(eval($s)) echo f();
    6. echo "<br><br>finish."
    7. ?>
    но вот так (вместо 1/0 теперь z(2))
    Код (PHP):
    1. <?php
    2. function myErrorHandler ($errno, $errstr, $errfile, $errline) {echo "oooops";}
    3. set_error_handler("myErrorHandler");
    4. $s  = "function f() { return z(2); } return 1;";
    5. if(eval($s)) echo f();
    6. echo "<br><br>finish."
    7. ?>
    не работает. Пишет "Call to undefined function z()" и вылетает (т.е. не доходит до finish), а мне нужно, чтобы просто написало "Oooops" и "finish.".
     
  2. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
  3. Dimasick

    Dimasick Активный пользователь

    С нами с:
    30 апр 2011
    Сообщения:
    57
    Симпатии:
    0
    Сделал
     
  4. machetero

    machetero Активный пользователь

    С нами с:
    25 окт 2014
    Сообщения:
    499
    Симпатии:
    21
    Может потому что fatal error. А они не обрабатываются кастомным обработчиком ошибок.
     
  5. iNEEdhLw

    iNEEdhLw Новичок

    С нами с:
    22 окт 2014
    Сообщения:
    414
    Симпатии:
    0
    ну так ты возвращаешь функцию z с аргументом, равным двойке.
    где эта функция определена?
     
  6. Dimasick

    Dimasick Активный пользователь

    С нами с:
    30 апр 2011
    Сообщения:
    57
    Симпатии:
    0
    И выхода нет?

    Добавлено спустя 1 минуту 14 секунд:
    читай внимательно. это и есть та ошибка, которую нужно отобразить как "oooops".
     
  7. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
  8. Dimasick

    Dimasick Активный пользователь

    С нами с:
    30 апр 2011
    Сообщения:
    57
    Симпатии:
    0
    Ну это для php 7...

    Добавлено спустя 17 минут 19 секунд:
    Кажется, нашел.
    http://webenterprise.ru/php-errors-and-exceptions/
    Не фонтан, конечно, но под php 5.0 ничего лучше, думаю, не придумать.
    Всем спасибо!