Yuriy
Хотя, кажется, такой язык уже есть
Yuriy
JAVA
Александр
потому что null не нужен для разработки
null нужен для указания что параметр не задан
Vitaliy
как раз нужен
сам человек который придумал null говорит что зря
Анатолий
Почему не нужен, нул как раз отсутствие значения
Александр
как тогда указать что email не указан?
Анатолий
Не исключениями едиными живем
Sergey
myParam = Option.Some(‘myemail@domain.com’)
Александр
Igor
не нужен
Например если надо знать залогинен юзер, не залогинен или еще нет данных и тогда лоадер
Igor
Например
Sergey
а ещё в ридаксе юзаю enum LOADING
Александр
myParam = Option.None()
а вы вообще никогда нулы не используете или иногда приходится?
Igor
Надо попробовать
Sergey
а вы вообще никогда нулы не используете или иногда приходится?
из-за того, что пишем на жс приходится юзать но постепенно портируем небезопасный код с нуллами и эксепшенами
Yuriy
Кстати, коллеги, а никто случайно ReasonML на бэке не использует?
Yuriy
Хотя ризон в окамл транспилировать логичнее, чем в ноду… Но вдруг у кого-то есть опыт.
Sergey
https://www.infoq.com/presentations/Null-References-The-Billion-Dollar-Mistake-Tony-Hoare
Sergey
а эксепшены просто весь код превращают в кашу
Sergey
а если там промисы есть, то в синхронно/асинхронную кашу
Александр
а эксепшены просто весь код превращают в кашу
а почему не сделать один эксепшен на все?
Александр
эксепшен по идее - это когда где-то нарушена логика и требуется вмешательство программиста
Sergey
один эксепшен и что построишьодин обработчик на все
Александр
эксепшен - это не if
Александр
if - это реализация логики, а эксепшен - это способ отловить момент когда логика нарушена
Александр
если в программе возникает эксепшен, значит необходимо ее перепрограммировать
Александр
кроме ситуаций типа потери коннекта
Анатолий
не сравнивайте нулы в типизированных языках и в ноде, это совсем разные вещи
Александр
это как с проверкой типов. компилятор ведь не обрабатывает автоматически эти ситуации, а принуждает вас личнл залесть в код
Анатолий
И експешн не превращает код в кашу, код в кашу превращает программист
Александр
поправьте плиз если ошибаюсь
Sergey
чтобы не было нарушений логики в программе
Анатолий
Ексепшен это не нарушение логики
Sergey
Ексепшен это не нарушение логики
строить логику на эксепшенах. о да вы шарите в говнокоде
Анатолий
Это контролируемые ошибки, а иногда и вообще не ошибки
Islomkhodja
оффтоп => фейсбук у вас работает?)
Анатолий
О да, делать вывод о работе других с переходом на личности, это хороший подход
Sergey
учитывая насколько плохи эксепшены в жс
Анатолий
С приходом асинк эксепшены очень даже неплохо отрабатывают свой хлеб
Alisher
+
Анатолий
С учетом наследования, эксепшены очень даже неплохо можно фильтровать
Sergey
ахаха
Sergey
ясно
Александр
ну вот этого и надо отказываться
да! и поэтому обработка эксепшена должна быть только чтобы выкинуть программисту информацию о том месте, где оно произошло, а не для реализации что делатт в этом случае. вернее делать в этом случае одно - выходить из программы
Александр
насколько я понимаю смысл эксепшенов именно в этом
Кылыч
try { res.render('index', { title: 'SweetShop', Lots: lot, Users: countUsers }); }catch (TypeError) { res.render('index', { title: 'SweetShop', Lots: lot, Users: 0 }); }catch (error) { console.log(error); } ругает try expected?
Александр
если не считать ситуаций типа обрыва коннекта, где эксепшен - это единственный способ узнать о таком обрыве
Sergey
но вообще я стараюсь избавляться в коде от эксепшенов чтобы все нестандартные ситуации крешили
Анатолий
Тоесть твои плиложения просто падают если появляется исключение?
Eldar
Ну норм
Sergey
кто нить помогите?
хороший пример))) почему эксепшены не нужны для логики)
Анатолий
Это тоже как-то не так, в моем мире приложения работают даже в нестандартных ситуациях, иначе есть шанс потерять другие запросы, которые не вызывают ексепшены
Кылыч
а че нельзя писать несколько catch условий
Кылыч
додного try блока
Eldar
кто нить помогите?
Нет, если хочешь еще один catch, пиши try/catch внутри первого catch
Eldar
welcome to try/catch hell !
Кылыч