ФорумПрограммированиеPHP для идиотов → Исключения в php

Исключения в php

  • soul

    Сообщения: 790 Репутация: N Группа: Кто попало

    Spritz 26 октября 2010 г. 0:31

    Взялся серьезно за свой фреймворк, решил сделать все кошерно, хочу добавить экцепшены. В теории давно их знаю, но толком не применял. делал только throw new Exception('ololo');

    теперь же хочу адекватно их обработать.
    1) первый вопрос - где хранить классы исключений? например ConfigException?
    все в отдельной папке exceptions или прямо со всеми либами?
    если рядом со всеми либами, то как-то некошерно, да и не видел такого никогда.

    2)

    try {
    if (empty($xyuny)) throw new ConfigException("хуйня пуста");
    }
    catch (ConfigException $e) {
    //вот что тут показывать вообще? die с трейсом?
    }


    как-то не понимаю механизм, да и во фреймворках других не замечал блоков try/catch, по идее каждая либа должна свой класс исключений иметь
    Спустя 136 сек.
    а ведь вооюще, каждая ошибка в классе по идее должна класс исключений иметь, то есть дохуя
  • vasa_c

    Сообщения: 3131 Репутация: N Группа: в ухо

    Spritz 26 октября 2010 г. 0:34, спустя 3 минуты 35 секунд

    1. исключения не генерируются сами по себе, а генерируются какими-то подсистемами, соответственно, они к ним и относятся и лежать должны рядом.
    2. понятно ничего
    3. в светлой теории каждый класс ошибок должен иметь свой класс исключений. насколько приближаться к идеалу каждый решает сам.
  • adwo

    Сообщения: 913 Репутация: N Группа: Джедаи

    Spritz 26 октября 2010 г. 0:36, спустя 2 минуты 12 секунд

    1. Основные эксепшены должны быть в каком-то одном месте + какое-то такое же место для каждого модуля.
    2. угу
    Спустя 18 сек.
    // имхо
  • soul

    Сообщения: 790 Репутация: N Группа: Кто попало

    Spritz 26 октября 2010 г. 0:44, спустя 7 минут 16 секунд

    если в пааен либс будут лежать 10 библиотек и минимум 10 классов исключений, как то хуевенько :D

    1) а try/catch на самом верхнем уровне системы с BaseException адекватно делать?
    2) не будет ли тормозов, что целую систему в себя включает этот блок?
    Спустя 208 сек.
    я гуглю, так везде идет речь о логировании исключений.
    3) а разве при включеном в htaccess логировании и выключении вывода ошибок в браузер они сами логироваться не будут апачем?
    4) если не будут, то писать в особый лог или в тот же, что апач ошибки пишет?
  • master

    Сообщения: 3244 Репутация: N Группа: Джедаи

    Spritz 26 октября 2010 г. 12:05, спустя 11 часов 21 минуту 20 секунд

    в светлой теории каждый класс ошибок должен иметь свой класс исключений

    это что за теория такая?
    не всё полезно, что в swap полезло
  • vasa_c

    Сообщения: 3131 Репутация: N Группа: в ухо

    Spritz 26 октября 2010 г. 14:17, спустя 2 часа 11 минут 52 секунды

    master, прекрасная и абстрактная. чем детализированее иерархия исключений, тем лучше.
  • speedleader

    Сообщения: 28 Репутация: N Группа: Кто попало

    Spritz 27 октября 2010 г. 17:35, спустя 1 день 3 часа 17 минут


    master, прекрасная и абстрактная. чем детализированее иерархия исключений, тем лучше.


    Нет. Детализация должна быть достаточной. Нет линейной зависимости качества системы от количества исключений.
  • master

    Сообщения: 3244 Репутация: N Группа: Джедаи

    Spritz 27 октября 2010 г. 17:39, спустя 3 минуты 54 секунды

    В общем я нихуя не понял. По мне так достаточно двух исключений: пользователя (фейл из-за неверно введённых пользователем данных) и системы (фейл не зависящий от пользователя). А их уже можно дробить, но это дело вкуса.
    не всё полезно, что в swap полезло
  • soul

    Сообщения: 790 Репутация: N Группа: Кто попало

    Spritz 27 октября 2010 г. 19:18, спустя 1 час 39 минут 33 секунды

    красивее когда при загрузке либы написано Пздец, ЛоадерЛибаЕксцепшен, не загрузилась либа! чем какой-то ПиздецЕксцепшен, и понятно только из трейса что не так.

    все сводится только к этому + свои обработчики можно засовывать, чтоб кастомизировать каждое исключение
  • vasa_c

    Сообщения: 3131 Репутация: N Группа: в ухо

    Spritz 27 октября 2010 г. 19:20, спустя 2 минуты 20 секунд

    master, фразы "по мне так достаточно" к красивой и возвышенной абстракции никак не относятся.

Пожалуйста, авторизуйтесь, чтобы написать комментарий!