
I am trying to get catch to work but I guess I am total newbie on this one. main :: IO() main = do removeFile "./newint.hex" hexFile <- catch (readFile int.hex) (\_ -> do putStrLn "Cannot find int.hex" getLine --Simply stop program so user can read error message return() --Quit) hexFile <- readFile "int.hex" --res of program goes here getLine return() But it keeps giving me error on getLine. How can I quit a program in case of an error giving an error message? Also I tried something like main :: IO() main = do ex <- doesFileExist "./newint.hex" if ex then removeFile "./newint.hex" But that won't work either. Any ideas? I'd like to catch different errors and quit program giving different error messages Last but not least I have the function outputLine keyno key orgFile = do let part1 = getLeft keyno (orgFile!!1) let part2 = getRight keyno (orgFile!!1) let total = part1 ++ (map toUpper key) ++ part2 let checks = checksum (drop 1 total) let final = total ++ checks ++ "\n" newHexFile <- openFile "newint.hex" WriteMode hPutStrLn newHexFile (orgFile!!0 ++ "\n" ++ final ++ unlines (drop 2 orgFile)) I'd like to be able to check for stuff such as size of key and wheter keyno is only 1 or 0 and quit program with error message otherwise but again couldn't quite get catch to work. Any reading tips about subject would be appreciated. Best Regards NooK