Конференция "Прочее" » Тем, кто утверждает, что тело except не должно быть пустым
 
  • test (17.01.09 20:35) [140]
    oxffff ©   (17.01.09 20:33) [137]
    Достал, просто скажи что пишешь, чтобы не пользоваться.
  • oxffff © (17.01.09 20:38) [141]

    > Игорь Шевченко ©   (17.01.09 20:34) [139]


    А как же громкая смерть приложениея со скрежетом?
    Вы же считаете, что нужно исключение пропустить вверх до среды. Это ислючение не будет обработано и среда сделает себе самоубийство.

    Я вообще рекомендую не полагаться на чужой код, и даже логирование исключения оборачивать в SEH фрейм.

    Теперь по теме.

    Где я не прав в [137].
  • Игорь Шевченко © (17.01.09 20:39) [142]
    oxffff ©   (17.01.09 20:11) [131]


    > Cовершенно не коррелирует с моим примером.


    Ты явно дальтоник. Речь не идет о твоих примерах, твои примеры - это твои проблемы. Тебе уже который пост объясняют, что все зависит от типа ошибки - есть ошибки в данных и есть ошибки в программе. Впрочем, если из-за ошибки в данных дальнейшая работа программы не имеет смысла или потенциально приведет к каскадным ошибкам, то чем скорее впрограмма завершится с громким треском, тем лучше.
    Хороший пример - остановка операционной системы Windows из-за ошибки в режиме ядра, казалось бы, чего проще - выгрузи сбойный драйвер и продолжай работать, как ни в чем не бывало.
    Однако грамотные программисты Microsoft предпочитают останавливать систему с выдачей диагностики в виде синего экрана.
  • Игорь Шевченко © (17.01.09 20:41) [143]
    oxffff ©   (17.01.09 20:38) [141]


    > Где я не прав в [137].


    Я тебе последний раз говорю - есть ошибки в программе и есть ошибки в данных. Всякого рода плагины можно рассматривать как данные.
  • oxffff © (17.01.09 20:43) [144]

    > Игорь Шевченко ©   (17.01.09 20:39) [142]
    > oxffff ©   (17.01.09 20:11) [131]
    >
    >
    > > Cовершенно не коррелирует с моим примером.
    >
    >
    > Ты явно дальтоник. Речь не идет о твоих примерах, твои примеры
    > - это твои проблемы. Тебе уже который пост объясняют, что
    > все зависит от типа ошибки - есть ошибки в данных и есть
    > ошибки в программе.


    Да не дальтоник я. Просто нужно говорить прямо и не водить за нос.

    Я бы добавил что еще есть ошибки внешние, суть которых установить не представляется возможным. Это именно те о которых я пишу в своих примерах. Добавьте в свою классификацию.
  • oxffff © (17.01.09 20:47) [145]

    > Игорь Шевченко ©   (17.01.09 20:41) [143]
    > oxffff ©   (17.01.09 20:38) [141]
    >
    >
    > > Где я не прав в [137].
    >
    >
    > Я тебе последний раз говорю - есть ошибки в программе и
    > есть ошибки в данных. Всякого рода плагины можно рассматривать
    > как данные.


    Нельзя брить всех одинаково. от этого
  • oxffff © (17.01.09 20:49) [146]

    > test   (17.01.09 20:35) [140]
    > oxffff ©   (17.01.09 20:33) [137]
    > Достал, просто скажи что пишешь, чтобы не пользоваться.


    Ты либо глуп , либо и в правду не хочешь вникать в суть и решил отделаться только общими фразами.
  • Игорь Шевченко © (17.01.09 20:49) [147]
    oxffff ©   (17.01.09 20:43) [144]

    Нету внешних ошибок. Все ошибки делятся на две категории, которые должен исправлять программист и которые должен исправлять пользователь.
    На первую категорию ошибок однозначно надо реагировать вылетом с треском, на вторую - все зависит от задачи.
  • test (17.01.09 20:55) [148]
    Игорь Шевченко ©   (17.01.09 20:49) [147]
    Бесполезно пока его сам по граблям не пройдет не успокоиться.
  • test (17.01.09 20:56) [149]
    Игорь Шевченко ©   (17.01.09 20:49) [147]
    Бесполезно, пока сам по граблям не пройдет не успокоиться. Ошибок у него не существует блин.
  • oxffff © (17.01.09 20:56) [150]

    > Игорь Шевченко ©   (17.01.09 20:49) [147]
    > oxffff ©   (17.01.09 20:43) [144]
    >
    > Нету внешних ошибок. Все ошибки делятся на две категории,
    >  которые должен исправлять программист и которые должен
    > исправлять пользователь.
    > На первую категорию ошибок однозначно надо реагировать вылетом
    > с треском, на вторую - все зависит от задачи.


    Тогда ошибка в плагине, который генерирует неизвестное исключение(вызванное например потерей соединения - а это безусловно ошибка программиста), должно приводить к вылету с треском всей среды по идеалогии, которой вы придерживаетесь.

    Однако есть другая точка зрения.
    Есть зоны ответственности реагирования на ошибки частей приложения.
    И одни части должны защищать себя от ошибок других частей.
    И крах одних не должен приводить к краху других.

    А внешние ошибки воспринимать как данные - это заниматься самообманом.
  • oxffff © (17.01.09 20:57) [151]

    > test   (17.01.09 20:56) [149]
    > Игорь Шевченко ©   (17.01.09 20:49) [147]
    > Бесполезно, пока сам по граблям не пройдет не успокоиться.
    >  Ошибок у него не существует блин.


    Ты понимаешь, что такое generic метод?
    Если нет учи мат. часть.
  • vuk © (17.01.09 20:59) [152]
    to Игорь Шевченко ©   (17.01.09 20:49) [147]:
    >Все ошибки делятся на две категории, которые должен исправлять
    >программист и которые должен исправлять пользователь.
    >На первую категорию ошибок однозначно надо реагировать вылетом с
    >треском, на вторую - все зависит от задачи.
    А куда относится AV при форматировании сообщений системного журнала? Эта ошибка не может быть исправлена программистом, т.к. это ошибка в информации занесенной в лог, допущенная совсем другой софтиной. И уж подавно, это не может быть исправлено пользователем.
  • oxffff © (17.01.09 21:05) [153]

    > test   (17.01.09 20:56) [149]
    > Игорь Шевченко ©   (17.01.09 20:49) [147]
    > Бесполезно, пока сам по граблям не пройдет не успокоиться.
    >  Ошибок у него не существует блин.


    Ошибки для меня существуют. И поверь, что я не отстаиваю точку зрения что except end должен быть пустым всегда. Более того я и пишу, как все мои оппоненты, либо информативные коды возвратов, либо дерево классов исключений с проверкой в except end.

    Я отстаиваю точку зрения, что может быть и except end пустым (а это между прочим тема начальной беседы) и привел контректный пример.
    А ты  насколько я понял не прочитал всей темы, влез в середину разговора и пытаешься меня убедить в том, что я пишу всегда пустой except end.

    Я готов с тобой продолжить диалог, если ты внимательно узучишь [137] и дашь конкретные замечания(на которые я постараюсь ответить).
    Либо приведешь конр пример, соблюдая условия задачи, но тем не менее без пустого except end.
  • Anatoly Podgoretsky © (17.01.09 21:13) [154]
    > DVM  (17.01.2009 20:19:14)  [134]

    Дэти запомните, понять это нельзя
    Сол пишется с мягким знаком
    а Ось - это полосатый мухь, без мягкого знака.

    (с) Анекдот
  • Anatoly Podgoretsky © (17.01.09 21:19) [155]
    > vuk  (17.01.2009 20:59:32)  [152]

    Вроде бы уже выяснили, что это ошибка данных, о которой надо сообщить и продолжить. Эта ошибка ни к каким последствиям не приводит.
  • vuk © (17.01.09 21:24) [156]
    to Anatoly Podgoretsky ©   (17.01.09 21:19) [155]:
    >Вроде бы уже выяснили, что это ошибка данных, о которой надо сообщить
    >и продолжить. Эта ошибка ни к каким последствиям не приводит.

    Ну, вот мне тоже так казалось, но Игорь-то пишет о только двух категориях...
  • oxffff © (17.01.09 21:25) [157]

    > Anatoly Podgoretsky ©   (17.01.09 21:19) [155]


    Кому сообщить? В милицию?
    Если весь лог идет через этот журнал только, который возвращает неизвестные исключения. Это исключение должно быть тихо съедено, чтобы продолжить работу приложения.
    Или вы предлагаете на каждый лог еще лог. Таким образом повышая отказоустойчивость логирования, увеличивая количество вложенности логов.

    Смотрите условие [137].
  • Anatoly Podgoretsky © (17.01.09 21:28) [158]
    > oxffff  (17.01.2009 21:25:37)  [157]

    Касательно [155] мы уже обсудили кому сообщить и как.
  • oxffff © (17.01.09 21:30) [159]

    > Anatoly Podgoretsky ©   (17.01.09 21:28) [158]


    Ну так, что нам мешает вернуться к обсуждению [137].
 
Конференция "Прочее" » Тем, кто утверждает, что тело except не должно быть пустым
Есть новые Нет новых   [134453   +31][b:0.001][p:0.001]