|
Монады
|
|||
---|---|---|---|
#18+
Сон Веры Павловны, > по сниппету Используй Application.UnhandledException, а не то что ты написал >Это не более умно, чем распространять использование частного инструмента на общую практику. >ExtraRef - свойство с нетривиальной логикой в аксессоре Свойство с нетривиальной логикой в аксессоре это общая практика, я правильно понял? > И в случае с монадами А ты уверен, что это монады? Почему ты в этом уверен? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2014, 12:35 |
|
Монады
|
|||
---|---|---|---|
#18+
skyANAenigmaticskyANA, > И в любом случае "let it crash" - это плохо. Почему?Очень плохо для кармы. enigmaticЭтот код под try/catch, очевидно.С этого момента по подробнее: что конкретно Вы завернули в try/catch и почему думаете, что это является неким очевидным решением? > Очень плохо для кармы. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2014, 12:35 |
|
Монады
|
|||
---|---|---|---|
#18+
skyANAenigmaticskyANA, > И в любом случае "let it crash" - это плохо. Почему?Очень плохо для кармы. enigmaticЭтот код под try/catch, очевидно.С этого момента по подробнее: что конкретно Вы завернули в try/catch и почему думаете, что это является неким очевидным решением? Упс, ctrl+enter отправляет сообщения. > Очень плохо для кармы. Это хороший ответ на вопрос "почему?". > С этого момента по подробнее: что конкретно Вы завернули в try/catch и почему думаете, что это является неким очевидным решением? Во-первых, > Всё зависит от того считается ли отсутствие объекта нормальной или исключительной ситуацией. Не отсутствие объекта, а отсутствие каждого из объектов в цепочке. По дефолту считается что отсутствие объекта считается исключительной ситуацией. > что конкретно Вы завернули в try/catch Всё. Используется Application.UnhandledException. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2014, 12:41 |
|
Монады
|
|||
---|---|---|---|
#18+
enigmaticskyANAпропущено... Очень плохо для кармы. пропущено... С этого момента по подробнее: что конкретно Вы завернули в try/catch и почему думаете, что это является неким очевидным решением? Упс, ctrl+enter отправляет сообщения. > Очень плохо для кармы. Это хороший ответ на вопрос "почему?". > С этого момента по подробнее: что конкретно Вы завернули в try/catch и почему думаете, что это является неким очевидным решением? Во-первых, > Всё зависит от того считается ли отсутствие объекта нормальной или исключительной ситуацией. Не отсутствие объекта, а отсутствие каждого из объектов в цепочке. По дефолту считается что отсутствие объекта считается исключительной ситуацией. > что конкретно Вы завернули в try/catch Всё. Используется Application.UnhandledException.Вот. Теперь можно объяснить почему это плохо для кармы. Сначала вас проклянут пользователи, так как не будут понимать почему программа говорит какие-то общие слова о том, что не может работать. Потом вас проклянёт первая линия поддержки, потому как по сообщению ни фига не понятно где конкретно произошла ошибка и что предложить пользователю в качестве временного воркэраунда. Затем к проклятиям присоединится вторая линия поддержки, потому как логи засираются ни о чём не говорящими "null reference exception"-ами. И наконец разрабочик, которому придётся переключаться со своей ветки на релизную, чтобы посмотреть, что же в той строке кода может быть null. Вот как-то так ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2014, 13:55 |
|
Монады
|
|||
---|---|---|---|
#18+
enigmatic, ну и очевидно, что Ваша работа с исключениями ни фига не совпадает с общепринятым подходом. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2014, 14:01 |
|
Монады
|
|||
---|---|---|---|
#18+
skyANAЗатем к проклятиям присоединится вторая линия поддержки, потому как логи засираются ни о чём не говорящими "null reference exception"-ами.Если в лог не пишут stack trace - сами виноваты. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2014, 14:35 |
|
Монады
|
|||
---|---|---|---|
#18+
skyANAenigmatic, ну и очевидно, что Ваша работа с исключениями ни фига не совпадает с общепринятым подходом.Глобальный обработчик в Application.UnhandledException гораздо лучше общепринятых подходов, которых нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2014, 14:37 |
|
Монады
|
|||
---|---|---|---|
#18+
skyANAСначала вас проклянут пользователи, так как не будут понимать почему программа говорит какие-то общие слова о том, что не может работать. Потом вас проклянёт первая линия поддержки, потому как по сообщению ни фига не понятно где конкретно произошла ошибка и что предложить пользователю в качестве временного воркэраунда. Затем к проклятиям присоединится вторая линия поддержки, потому как логи засираются ни о чём не говорящими "null reference exception"-ами. И наконец разрабочик, которому придётся переключаться со своей ветки на релизную, чтобы посмотреть, что же в той строке кода может быть null. Вот как-то так Кошмар на улице Вязов просто. Если ты хочешь проверять на null каждый экземпляр value-типа то флаг в руки. авторenigmatic, ну и очевидно, что Ваша работа с исключениями ни фига не совпадает с общепринятым подходом. Ну это всего лишь твое мнение. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2014, 14:56 |
|
Монады
|
|||
---|---|---|---|
#18+
enigmaticавторenigmatic, ну и очевидно, что Ваша работа с исключениями ни фига не совпадает с общепринятым подходом. Ну это всего лишь твое мнение.Так блин Если по логике программы переменная никак не должна оказаться null, тогда это ИСКЛЮЧИТЕЛЬНАЯ ситуация, она не должна была произойти по логике программы, тогда да, исключение, которое может обрабатываться в том числе и на уровне приложения. Но если null - это возможная ситуация в рамках приложения, значит она НЕ ИСКЛЮЧИТЕЛЬНАЯ, значит делать проверку через ИСКЛЮЧЕНИЕ неверно по определению самого исключения. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2014, 15:01 |
|
Монады
|
|||
---|---|---|---|
#18+
enigmatic> по сниппету По какому сниппету? Я что-то писал о сниппетах? enigmaticИспользуй Application.UnhandledException, а не то что ты написал Ээ? Я писал про отлавливание NPE, который съедается блоком catch. Каким боком тут Application.UnhandledException? enigmaticСвойство с нетривиальной логикой в аксессоре это общая практика, я правильно понял? Опустим слово "нетривиальный". Просто логика. Не auto-implemented properties - вполне себе общая практика. enigmaticА ты уверен, что это монады? Почему ты в этом уверен? Что - это? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2014, 15:05 |
|
Монады
|
|||
---|---|---|---|
#18+
enigmaticЕсли ты хочешь проверять на null каждый экземпляр reference -типа то флаг в руки. Очевидное исправление. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2014, 15:14 |
|
Монады
|
|||
---|---|---|---|
#18+
Алексей КskyANAЗатем к проклятиям присоединится вторая линия поддержки, потому как логи засираются ни о чём не говорящими "null reference exception"-ами.Если в лог не пишут stack trace - сами виноваты.Пишется, но зачастую знание того, что причину исключения надо искать в 41 строке такого-то файла ничем не помогает саппорту. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2014, 15:21 |
|
Монады
|
|||
---|---|---|---|
#18+
skyANAАлексей Кпропущено... Если в лог не пишут stack trace - сами виноваты.Пишется, но зачастую знание того, что причину исключения надо искать в 41 строке такого-то файла ничем не помогает саппорту.Ведь эти логи не для саппорта. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2014, 15:34 |
|
Монады
|
|||
---|---|---|---|
#18+
Алексей КskyANAenigmatic, ну и очевидно, что Ваша работа с исключениями ни фига не совпадает с общепринятым подходом.Глобальный обработчик в Application.UnhandledException гораздо лучше общепринятых подходов, которых нет.Что значит лучше? Глобальный обработчик необработанных исключений - это часть подхода А подход очень прост: если мы в данном месте кода знаем, что состояние является исключительным, то генерируем исключение, если можем обработать исключение, то обрабатываем, иначе пробрасываем выше. Далее тоже самое применяется для кода выше и доходит до уровня приложения и глобального обработчика. Количеество непойми отчего и где возникших исключений сокращается в разы. Работает и в C#, и в Java, и в PHP, и в JavaScript. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2014, 15:48 |
|
Монады
|
|||
---|---|---|---|
#18+
enigmaticskyANAСначала вас проклянут пользователи, так как не будут понимать почему программа говорит какие-то общие слова о том, что не может работать. Потом вас проклянёт первая линия поддержки, потому как по сообщению ни фига не понятно где конкретно произошла ошибка и что предложить пользователю в качестве временного воркэраунда. Затем к проклятиям присоединится вторая линия поддержки, потому как логи засираются ни о чём не говорящими "null reference exception"-ами. И наконец разрабочик, которому придётся переключаться со своей ветки на релизную, чтобы посмотреть, что же в той строке кода может быть null. Вот как-то так Кошмар на улице Вязов просто. Если ты хочешь проверять на null каждый экземпляр value-типа то флаг в руки. авторenigmatic, ну и очевидно, что Ваша работа с исключениями ни фига не совпадает с общепринятым подходом. Ну это всего лишь твое мнение.Ну когда системой ежедневно пользуются полтора миллиона пользователей, то такое разгильдяйство как Ваше приводит нет, не к кошмару, но по крайней мере к тому, что лично Вам вряд-ли будут давать ответсвенные направления, повышать зп, особо ценить. Одни бужут смеяться над тем, что очередная бага адресована Вам, а другие ругаться. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2014, 15:53 |
|
Монады
|
|||
---|---|---|---|
#18+
Алексей КskyANAпропущено... Пишется, но зачастую знание того, что причину исключения надо искать в 41 строке такого-то файла ничем не помогает саппорту.Ведь эти логи не для саппорта.Ну я выше вроде детально расписал, кто в итоге будет разбираться с логами. При этом его будут пинать, так как саппорт самостоятельно не смог дать пользователю быстрого решения. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2014, 15:57 |
|
Монады
|
|||
---|---|---|---|
#18+
skyANAАлексей Кпропущено... Глобальный обработчик в Application.UnhandledException гораздо лучше общепринятых подходов, которых нет.Что значит лучше? Глобальный обработчик необработанных исключений - это часть подхода А подход очень прост: если мы в данном месте кода знаем, что состояние является исключительным, то генерируем исключение, если можем обработать исключение, то обрабатываем, иначе пробрасываем выше. Далее тоже самое применяется для кода выше и доходит до уровня приложения и глобального обработчика. Количеество непойми отчего и где возникших исключений сокращается в разы. Работает и в C#, и в Java, и в PHP, и в JavaScript.И будем в каждом button_click (WPF, WinForms) или в каждом методе контроллера (Asp.Net) ставить try...catch. Удачи! ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2014, 18:20 |
|
Монады
|
|||
---|---|---|---|
#18+
Алексей КskyANAпропущено... Что значит лучше? Глобальный обработчик необработанных исключений - это часть подхода А подход очень прост: если мы в данном месте кода знаем, что состояние является исключительным, то генерируем исключение, если можем обработать исключение, то обрабатываем, иначе пробрасываем выше. Далее тоже самое применяется для кода выше и доходит до уровня приложения и глобального обработчика. Количеество непойми отчего и где возникших исключений сокращается в разы. Работает и в C#, и в Java, и в PHP, и в JavaScript.И будем в каждом button_click (WPF, WinForms) или в каждом методе контроллера (Asp.Net) ставить try...catch. Удачи!Нет конечно. Я же написал: "если можем обработать исключение". Под можем обработать имеется ввиду, что можем осмысленно обработать в данном месте программы. Тупо расставить везде try...catch - это не то. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2014, 19:44 |
|
Монады
|
|||
---|---|---|---|
#18+
Алексей К, ну и Вы упускаете из виду тот момент, что пока программист разбирается с исключением, то пользователи ждут. И если в корпоративной среде пусть ждут, никуда они не денутся. То пользователи коммерческого ПО могут послать лесом и уйти к конкурентам. А если сообщение об ошибке более осмысленное и сопровождено более подробной информацией, то саппорт может предложить пользователю быстрое решение, а ишью спокойно приоритезировать, не разводя суеты. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2014, 19:52 |
|
Монады
|
|||
---|---|---|---|
#18+
skyANAАлексей К, ну и Вы упускаете из виду тот момент, что пока программист разбирается с исключением, то пользователи ждут. Что за бред? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2014, 22:29 |
|
Монады
|
|||
---|---|---|---|
#18+
МСУskyANAАлексей К, ну и Вы упускаете из виду тот момент, что пока программист разбирается с исключением, то пользователи ждут. Что за бред?Ну давай расскажи, что будет делать пользователь, когда где-то в коде неизвестно отчего падает null reference exception. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2014, 23:20 |
|
Монады
|
|||
---|---|---|---|
#18+
skyANA, года два назад взял пробник совдеповской срм ( посмотреть что за зверь по просьбе заказчика) и при первом запуске вывалилось nullreferenceexception, тут же мило послал нах.. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2014, 23:45 |
|
Монады
|
|||
---|---|---|---|
#18+
skyANAМСУпропущено... Что за бред?Ну давай расскажи, что будет делать пользователь, когда где-то в коде неизвестно отчего падает null reference exception. расчехлять дебаггер, что же ещё? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.08.2014, 00:51 |
|
Монады
|
|||
---|---|---|---|
#18+
Где-то в степиskyANA, года два назад взял пробник совдеповской срм ( посмотреть что за зверь по просьбе заказчика) и при первом запуске вывалилось nullreferenceexception, тут же мило послал нах.. год назад поступил холодный звонок из города кукуево, впаривают свою срм по все матушке Россие, решил глянуть... отэто я огрёб, хорошо на виртуалке ставил. чувачьё писало свою говно-срм по книжкам 2000-ых, на убогих вебформах образца 2.0... валилось и падало в том чесле с какими-то экцепшенами через раз. похоже только я один в этом мире не понимаю, как они это продают. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.08.2014, 00:54 |
|
Монады
|
|||
---|---|---|---|
#18+
skyANAМСУпропущено... Что за бред?Ну давай расскажи, что будет делать пользователь, когда где-то в коде неизвестно отчего падает null reference exception. Дебажить на тестовом иди девелоперском стенде, сливать при необходимости БД или часть тестируемых данных с продуктива. Или ты дебажишь продуктив? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.08.2014, 01:08 |
|
|
start [/forum/topic.php?fid=20&msg=38730516&tid=1402538]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
40ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
others: | 23ms |
total: | 172ms |
0 / 0 |