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

А мне вот вопрос интересен в свете обсуждения резалтов: а

в чём прикол на каждый чих проверять isNil (?, ещё как-то), а потом ещё и в ручную разворачивать стек? Это-же небезопасно абсолютно

6 ответов

16 просмотров

Всм

Vladimir-Berezenko Автор вопроса
Arkeii
Всм

впрм.

Очевидное поведение. Я конечно очень не люблю Go за многое и даже за проверку ошибок через nil. Но, это правда удобно в некоторых приложения. Например CLI. У нас максимум 10-15 ошибок на весь код, допустим. Но их легко заметить, обработать. У Rust еще все интереснее с оператором ? И с ним он намного лучше Go. Но вся соль начинается когда нам нужны Custom Error. Зачастую приложению нужно иметь полностью свои уникальные ошибки, с уникальной метадатой. Возьму тут пример Nim. А как сделать свои ошибки для парсинга текста? Конечно есть Try /Catch / Option / и.т.д. Raise, коды ошибок. Лично для моего приложения. Это все, перебор или не добор или не удобно. +(я не все это хорошо знаю и понимаю). А если человек не знакомый с ним захочет понять мой код. Да это упароться можно. Для меня даже подход Rust с Result часто не удобен. Потому что .. ? хоть и помогает. Но тут у меня ошибка стринг, тут стринг + метадата. В итоге я все равно делаю на половину гошный подход. Где ошибка это интерфейс. Но плюсы очевидных ошибок, это лучшее что есть. Каждую ошибку надо обрабатывать. Если программист дурак, он и с исключениями все сломает (такое я видел чаще). Когда то были только коды ошибок. Так было надо. 1. Память. 2. Инт проще всего передавать. 3. не было интернета и у тебя был справочник. Со всеми кодами. Теперь, все иначе. Исключения придумывали не для обработок ошибок, а для исключений. Когда ты не можешь знать будущего. Например мы можем не загрузить файл или загрузить. Окей. Можно обработать. А вот выход за границу массива. Тяжело обработать в целом. (условно). Или другой сбой на уровне железа, памяти и.т.д. Вот тут нужны исключения, но как их начали делать...как их стали применять. Это не всегда к месту. Более того, зачастую этого и не надо. Когда я работаю с го, я кайфую от обработки ошибок. Потому что все едино и однообразно. Хотя не хватает синтаксического сахара. С Раст я еще кое как , нормально в общем. Но 10 вариантов ошибок, конечно бесит. С ним, я хз как это красиво сделаю. Наверну свое :DDDD

Re
Очевидное поведение. Я конечно очень не люблю Go з...

> А как сделать свои ошибки для парсинга текста? type MyError* = object of CatchableError

Arkeii
> А как сделать свои ошибки для парсинга текста? ...

Ага, а толку то? Обрабатывать то я их должен в стиле Ним. Try / Catch и.т.д. Но мне не нужен Try / Catch. Мне нужно или паниковать или сказать что он дурак. И почему он дурак. Сказать я это могу 1000 и 1 способом. Выходит мне нужен только Catch.

Re
Ага, а толку то? Обрабатывать то я их должен в сти...

> Мне нужно или паниковать или сказать что он дурак. Тогда просто НЕ ЛОВИ, программа упадет и выведет сообщение об ошибке

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
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
Карта сайта