Как отловить исключение отсутствия синтаксического анализа из функции чтения в Haskell?

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

Прав ли я, полагая, что это не «ошибка ввода-вывода». потому что это не ошибка, вызванная неправильной работой системы ввода-вывода? Это семантическая ошибка, поэтому я не могу использовать механизмы обработки ошибок ввода-вывода?

22
задан Don Stewart 24 April 2011 в 16:29
поделиться