我遇到以下问题,我正在解析文件以将read
其转换Int
为String
。问题是当它失败时,我无法显示无法解析的字符串。我就知道了Exception: Prelude.read : no parse
。
我试图编写自己的myRead
函数,该函数将使用read
并抛出更有意义的消息,但我不知道如何捕获抛出的错误read
。
另外,还有其他方法可以找到未正确读取的内容(使用调试器或跟踪吗?)
case reads yourString of
[(x,"")] -> correctlyParsed x
_ -> errorHandling
否则,您可以使用readMaybe :: Read a => String -> Maybe a
以下方法
import Text.Read
case readMaybe yourString of
Just x -> correctlyParsed x
Nothing -> errorHandling
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句