169 похожих чатов

У меня это всегда вопрос вызывало.. Нафига писать код так,

чтобы потом ошибки вылавливать?

44 ответов

34 просмотра

Данные приходят снаружи. Валидность их не гарантирована

Nik- Автор вопроса
Nik
Будь добр не тэгать мои сообщения

Ты какой-то особенный? Я нормально общаюсь без задних мыслей. Не агрись на пустом месте

Nik- Автор вопроса
zamtmn
Ты какой-то особенный? Я нормально общаюсь без зад...

@Renat_Suleymanov я вежливо пытаюсь оградить себя от общения с данным товарищем

Nik
@Renat_Suleymanov я вежливо пытаюсь оградить себя ...

Он же тебя вообще никак не задевают. Какие сейчас то претензции?

Много компонентов использует этот механизм. Хочешь не хочешь, но обрабатывать это как-то надо

Nik
@Renat_Suleymanov я вежливо пытаюсь оградить себя ...

Надо не ограждаться а общаться нормально и все будет ок

Nik- Автор вопроса
Renat Suleymanov
Он же тебя вообще никак не задевают. Какие сейчас ...

Я попросил его не тэгать мои сообщения. Вежливо. Мне неприятно общение с ним, но функционал телеграма не позволяет заблокировать его в общих чатах.

Nik
Я попросил его не тэгать мои сообщения. Вежливо. М...

Я тебе вежливо отказал. Это общий чат

Nik- Автор вопроса
Kirill Filippenok
Много компонентов использует этот механизм. Хочешь...

Просто надо ввод данных контролировать, а не разгребать потом ошибки ввода. Это моё мнение.

Nik
Просто надо ввод данных контролировать, а не разгр...

Зачем делать работу, которую уже сделали? Если вылетает EConvertError, значит неправильно значение, вот и всё

Kirill Filippenok
Зачем делать работу, которую уже сделали? Если выл...

Исключение - это катапульта. Ты же выходишь из машины, штатно, через дверь?

Nik- Автор вопроса
Kirill Filippenok
Зачем делать работу, которую уже сделали? Если выл...

А выставить контроль вводимых символов что мешает? Это кода проще, чем пытаться потом писать кучу обработчиков на все возможные случаи, приводящие к исключениям

Hemul GM
Не согласен

Ok. Но есть 2 крайности: - Безопасный,(Try{Convert}. SUCCEED, GetLastError) - И Exception Based. Это крайности, повторюсь. Но ты наверняка начинал, когда исключения уже были. Потому так и говоришь. Не делю на черное и белое. Использую. Можно без исключений - лучше без них. В Go их, именно потому и не стали делать.

Nik- Автор вопроса

Там можно себе наваять класс-хэлпер с кучей плюшек и не париться потом написанием кучи кода для обработки исключений

Alexey Gavrilov
Ok. Но есть 2 крайности: - Безопасный,(Try{Convert...

Не, если есть безопасный метод Try*, то конечно. Но всё это зависит от задачи и от того, что требуется получить. Например, если у тебя метод требует чтения значения из конфига и не допускает дефолтного значения, то нет смысла использовать Try* и сразу выдать исключение, что нет значения - работать дальше нельзя

Это... дорого. Зачем давать пользователю вводить неверные данные? Когда можно не давать вводить фигню, как пример. И в худшем случае получать отлуп от базы и откатывать транзакцию.

Nik- Автор вопроса
Hemul GM
Не, если есть безопасный метод Try*, то конечно. Н...

Тут можно маскировку ошибок ввода получить просто на раз и потом на другом совершенно уровне закопаться в разруливании последствий

Nik
Там можно себе наваять класс-хэлпер с кучей плюшек...

Все предусмотреть невозможно, ошибки по ходу выполнения всеравно будут

zamtmn
Все предусмотреть невозможно, ошибки по ходу выпол...

Я пришел к схеме, когда кнопка OK/Save просто не доступна, если данные невалидны. И поля ввода, неправильные, подсвечиваются. Пользователи тупые, надо любить и помогать маленьким неумехам.

Alexey Gavrilov
Это... дорого. Зачем давать пользователю вводить н...

Это один из подходов. Я просто запрещаю дальнейшую обработку, пока не будут указаны корректные значения

Alexey Gavrilov
Я пришел к схеме, когда кнопка OK/Save просто не д...

Валидность это не просто правильный ввод. Это более широкое понятие

Kirill Filippenok
Это один из подходов. Я просто запрещаю дальнейшую...

Боюсь ты не понял... Ошибка уже совершена. Ты борешься с последствиями. А надо бороться с причиной и до этого не доводить. Форма ввода уже может быть разрушена к тому моменту. А если ты сохраняешь там, то ССЗБ. Эти выводы/подход получился не просто потому что "хочу так", а потому что по другому писанины много больше, код и логика сложнее.

zamtmn
Валидность это не просто правильный ввод. Это боле...

Спасибо, Кэп! Но дальше - то что? Если можно снизить уровень бардака в этом конкретном месте, то почему это не сделать? Тем более, если это делает жизнь проще.

Alexey Gavrilov
Спасибо, Кэп! Но дальше - то что? Если можно снизи...

Я к тому что бардак всеравно будет просачиваться и как тут выше рекомендуют я всё проверю, а потом на проверки тратиться небуду - в общем случае невыполнимо

Alexey Gavrilov
Боюсь ты не понял... Ошибка уже совершена. Ты боре...

Я борюсь с причиной. Покажу конкретный пример. На первом скриншоте видно, что нельзя включить использование конкретной зоны, потому что значения либо не валидные, либо не корректные. На втором скриншоте значения уже корректные и валидные, и поэтому я разрешаю использовтаь конкретную зону.

Alexey Gavrilov
Ok. Но есть 2 крайности: - Безопасный,(Try{Convert...

Ну мы же не знаем, что под капотом у функций, передающих ошибку в GetLastError, может там тоже своеобразная система исключений. По сути так и есть, мы пишем в лог и выходим из функции, это внешне кажется, что разные механизмы

Alexey Gavrilov
Я пришел к схеме, когда кнопка OK/Save просто не д...

иногда причина твоих ошибок неочевидна. А рядом никаких поясняющих надписей нет. А кнопка "ок" недоступна, несмотря на многочисленные попытки. Какие при этом выражения в адрес разработчика звучат, догадываешься? :)

Nik- Автор вопроса
Nik
Так кто мешает пояснения выводить?

никто. Вопрос в трудозатратах при выборе способа контроллировать корректность вводимыхх данных

Nik- Автор вопроса
Ed Doc
никто. Вопрос в трудозатратах при выборе способа к...

Док, просто надо ООП применять, а не всё в рукопашную преодолевать )

Nik
Док, просто надо ООП применять, а не всё в рукопаш...

Коль, ты умными словами не разговаривай. Ты пальцем покажи 😁

Nik- Автор вопроса
Ed Doc
Коль, ты умными словами не разговаривай. Ты пальце...

Ну, я вот ленивый программист.. Наваял себе некоторое количество кода, при помощи которого связываю между собой переменную и UI-компонент. Там внутри в зависимости от типа переменных разный код контролирующий ввод заложен. При вводе значение из компонента автоматом записывается в переменную. В общем, я UI-компонентами совсем не работаю и в юните формы кода минимально - чистая логика без всяческого мусора по работе с компонентами.

Ed Doc
иногда причина твоих ошибок неочевидна. А рядом ни...

Неа, потому что хинт рассказывает. Или в доке описано.

Nik
Ну, я вот ленивый программист.. Наваял себе некото...

Коль, сложно еще и это через ООП реализовывать. Это ж какие мозги надо иметь :) Тогда уж проще в OnKeyPress или OnExit/OnEditionDone контроллировать вводимые/введенные данные

Ed Doc
иногда причина твоих ошибок неочевидна. А рядом ни...

Именно поэтому это и делается, потому что, слышать косвенные маты через 3 лиц и невнятные багрепорты, которые оными не являются, намного проблемные.

Alexey Gavrilov
Неа, потому что хинт рассказывает. Или в доке опис...

Леш, кто ж в современным мире доки читает? О чем ты? :))))

Nik- Автор вопроса
Ed Doc
Коль, сложно еще и это через ООП реализовывать. Эт...

Нифига это не сложно ) Там внутри я на эти события и вешаю обработчики уже готовые )

Nik
Нифига это не сложно ) Там внутри я на эти события...

не гибко. И Оккама против. Понадобится тебе изменить условия в обработчике, опять интерфейс писать?

Nik- Автор вопроса
Ed Doc
не гибко. И Оккама против. Понадобится тебе измени...

А у меня прописано так, что назначенные на форме обработчики не перезатираются

Ed Doc
Леш, кто ж в современным мире доки читает? О чем т...

Но хинт или (?) Вопросик можно посмотреть. Я пишу минимальные требования к квалификации. Инструкции по применению. И если оператор неумный, у меня жопа прикрыта. "Рекомендации лучших собаководов."

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта