全面解析工程物资管理流程:从采购到分发
434
2024-01-22
给定以下代码:
module Main whereimport Control.Concurrent
main :: IO ()
main = forkIO errorPrinter >> threadDelay 1000000 >> print "Finished"

errorPrinter = error "You can't see me!"
我希望,运行此代码后,我会看到这样的:
"You can't see me""Finished!"
印刷到控制台。但是,“你看不到我”从未打印过。
我意想到,使用毛病在生产代码中不是一个好主张,但是我在开发中使用了毛病,并且发现没有毛病将毛病打印到控制台上,即便是依赖关系突出的毛病。
我相信这个问题有一个简单的解决方案。我不能成为第一个遇到这个问题的人,但是我在任何地方都找不到答案。
任何帮助将非常感激!
我没法复制您的问题;对我来讲,它确切打印了“你看不到我!”:
% runhaskell test.hstest.hs: You can't see me!
CallStack (from HasCallStack):
error, called at test.hs:8:16 in main:Main
"Finished"
我看到的行动与GHC 7.6(我周围最古老的GHC)类似。得知这类行动在过去210年左右的时间里产生了很大变化,我会感到非常惊讶。
不管如何,我建议切换到打印要打印的消息:
import System.IOerrorPrinter = hPutStrLn stderr "You can't see me!"
说出你的意思,和所有这些。
免责声明:
本网址(www.yingxiongyun.com)发布的材料主要源于独立创作和网友匿名投稿。此处提供的所有信息仅供参考之用。我们致力于提供准确且可信的信息,但不对材料的完整性或真实性作出任何保证。用户应自行验证相关信息的正确性,并对其决策承担全部责任。对于由于信息的错误、不准确或遗漏所造成的任何损失,本网址不承担任何法律责任。本网站所展示的所有内容,如文字、图像、标志、音频、视频、软件和程序等的版权均属于原创作者。如果任何组织或个人认为网站内容可能侵犯其知识产权,或包含不准确之处,请即刻联系我们进行相应处理。
发表评论
暂时没有评论,来抢沙发吧~