Tôi có chức năng chính thực hiện rất nhiều IO. Tại một thời điểm, tuy nhiên, tôi muốn kiểm tra một biến như not (null shouldBeNull)
thoát khỏi toàn bộ chương trình, mà không cần tiếp tục, với một linux exitcode 1 và xuất ra một thông báo lỗi.Cách thoát chính trong haskell với điều kiện
Tôi đã thử chơi xung quanh với error "..."
giống như đặt rằng trong một if
:.
if (not (null shouldBeNull)) error "something bad happened" else putStrLn "ok"
nhưng tôi nhận được một parse error (possibly incorrect indentation)
:(
Dưới đây là một đoạn thay đổi
main :: IO ExitCode
main = do
--Get the file name using program argument
args <- getArgs
file <- readFile (args !! 0)
putStrLn("\n")
-- ... (some other io)
-- [DO A CHECK HERE], exit according to check..
-- ... (even more io)
echotry <- system "echo success"
rmtry <- system "rm -f test.txt"
system "echo done."
.
Như bạn có thể thấy, tôi muốn kiểm tra nơi tôi đã đặt [DO A CHECK HERE]
nhận xét ở trên ...
Cảm ơn sự giúp đỡ của bạn!
Hoặc, không để in ra một "ok", 'Control.Monad' nhập khẩu quan trọng và 'khi badThingHappened exitFailure'. –