我如何获得有关 Haskell 错误发生位置的更多信息?例如,昨天我正在开发一个 Haskell 程序,该程序解析输入文件、转换数据,然后打印出报告信息。
有一次,我跑了“main”然后回来了
*** Prelude.read: parse error
没有其他信息。幸运的是,我知道我只在一个地方调用 read 并且能够修复它,但为了将来:
- 是否有可能获得此类错误的回溯或行号?
- 是否可以获得触发错误的实际数据,即导致解析错误的字符串?
Thanks!
Edit使用 GHC。
您可以通过导入来获取导致解析错误的字符串Debug.Trace http://hackage.haskell.org/package/base-4.6.0.1/docs/Debug-Trace.html和改变
你的来电
import Debug.Trace (trace)
--change
myRead s = read s
--to
myRead s = trace s (read s)
--or
myRead s = trace (take 100 s) (read s)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)