Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Haskell 安静地(无一例外地)退出哈斯克尔_Haskell_Exception_Exit - Fatal编程技术网

Haskell 安静地(无一例外地)退出哈斯克尔

Haskell 安静地(无一例外地)退出哈斯克尔,haskell,exception,exit,Haskell,Exception,Exit,我知道 exitWith ExitSuccess 退出程序,但它会输出 *** Exception: ExitSuccess 我想知道是否有办法退出,而不在屏幕上输出任何内容?在这里扩展上述评论(归功于Reid、Bakuriu和Jeffrey)。您很可能正在ghci中执行以下程序: import System.Exit main :: IO () main = exitWith ExitSuccess 现在在航站楼: $ ghci λ> :load crash.hs -- cras

我知道

exitWith ExitSuccess
退出程序,但它会输出

*** Exception: ExitSuccess

我想知道是否有办法退出,而不在屏幕上输出任何内容?

在这里扩展上述评论(归功于Reid、Bakuriu和Jeffrey)。您很可能正在ghci中执行以下程序:

import System.Exit

main :: IO ()
main = exitWith ExitSuccess
现在在航站楼:

$ ghci
λ> :load crash.hs -- crash.hs is the filename
λ> main
*** Exception: ExitSuccess
请注意,
ghci
ghc
是不同的<代码>ghci用作Haskell的REPL。上述代码在按如下方式编译和执行时不会产生任何消息:

$ ghc -o crash crash.hs 
$ ./crash

请注意,REPL是通过名为
ghci
的程序调用的。要编译和生成可执行文件,您必须使用名为
ghc

的可执行文件,它不应该打印该文件,您到底在做什么?您是否在ghci中执行该代码?当我编译代码时,它不会打印,但是使用ghci它会显示错误。我相信这是因为ghci添加了一个自定义异常处理程序(实际上它根本不存在!)我使用的是Haskell平台,我相信它在ghci中执行。下面是我的一段代码:如果opt==3,那么使用ExitSuccess else执行exitWith…@Ali Haskell平台是一个包含GHC(包括GHCi)和Cabal以及许多其他有用库的平台。因此,这些信息并不能真正告诉我们您是在使用GHC还是GHCi。我在ghciSo中运行程序,我是否应该忽略GHCi生成的“***异常:ExitSuccess”输出并继续使用代码?@Ali是的,您可以在
GHCi
中忽略它。反正没关系。您需要担心的是进程的退出状态。这是预期的
0
。谢谢。我已经接受了你的回答,这是之前三条评论的补充。