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

Подскажите, как можно вывести Either в качестве IOException? Пример: main ::

IO ()
main = run `catchError` handler where
handler e = putStrLn $ "MY Error: " ++ show e
run = do
let args = eitherDecode :: Either String Args
either error print args

Однако в этом случае catchError не ловит результат после вызова error

5 ответов

9 просмотров
Alex-Mayorov Автор вопроса

А почему это лучше, чем? main :: IO () main = run `catchError` handler where handler e = putStrLn $ "MY Error: " ++ show e run = do let args = eitherDecode :: Either String Args either fail print args

Alex-Mayorov Автор вопроса
Alex Mayorov
А почему это лучше, чем? main :: IO () main = run...

Как можно избежать префикса user error, используя MonadFail IO? Пример: main :: IO () main = run `catchError` handler where handler = putStrLn . show run = do let args = eitherDecode :: Either String Args either fail print args В ошибках получается вывод: user error (My Error), тогда как я хочу просто My Error.

Alex Mayorov
Как можно избежать префикса user error, используя ...

Ну либо не использовать fail либо не использовать show

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

Alex-Mayorov Автор вопроса

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

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

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