В моей программе Haskell я хочу прочитать значение, заданное пользователем, используя функцию getLine
. Затем я хочу использовать функцию read
для преобразования этого значения из строки в соответствующий тип Haskell. Как я могу уловить ошибки разбора, создаваемые функцией read
, и попросить пользователя повторно ввести значение?
Я правильно понимаю, что это не "ошибка ввода-вывода", потому что это не ошибка, вызванная неправильной работой системы ввода-вывода? Это семантическая ошибка, поэтому я не могу использовать механизмы обработки ошибок IO?