Size: a a a

2021 March 04

IK

Ilya Kos in Haskell
кана
ну ты попробуй, если получится, то покажи
источник

IK

Ilya Kos in Haskell
источник

к

кана in Haskell
[BRM]White Rabbit
Исключения должны валить программу, потому что это либо ошибка со стороны рантайма(StackOverflow, OutOfMemory) либо ошибка программиста, когда он не обработал кейс, который обязан был (OutOfRange). И в обоих случаях программа не валидна и её надо убивать.
Для иных ситуаций у языка обязаны быть другие способы обработки ошибок. В идеале - которые насильно навязывают вызывающему коду обработку этих самых ошибок(Result<T> в расте, Maybe в хаскеле)
ты путаешь паники и исключения
источник

к

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

[

[BRM]White Rabbit in Haskell
окей, назови мне кейс исключения, которое не было бы лучше реализовано с помощью Maybe
источник

к

кана in Haskell
чтение из файла
источник

[

[BRM]White Rabbit in Haskell
Nothing
источник

к

кана in Haskell
ужас
источник

к

кана in Haskell
щас бы при вызове каждой функции на всякие мелкие ошибки превращать код в лапшу
источник

IK

Ilya Kos in Haskell
кана
щас бы при вызове каждой функции на всякие мелкие ошибки превращать код в лапшу
Monads!
источник

IK

Ilya Kos in Haskell
И без лапши!
источник

к

кана in Haskell
...не решают этой проблемы нормально
источник

к

кана in Haskell
а, решают
источник

IK

Ilya Kos in Haskell
Ну если ты хочешь просто умирать – оберни в MaybeT
источник

к

кана in Haskell
делаем монаду Exception - ExceptT давайте назовем ее
источник

IK

Ilya Kos in Haskell
И дело с концом
источник

к

кана in Haskell
и кидаем исключения
источник

к

кана in Haskell
опа
источник

KV

Kirill Valyavin in Haskell
Делаем специальную монаду для исключений, а ой, это же IO получится
источник

[

[BRM]White Rabbit in Haskell
"Для исключений" а не "для генерации исключений"🌚
источник