
Am Freitag, 22. April 2005 16:40 schrieb Alexandre Weffort Thenorio:
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) since 'readFile int.hex' -- shouldn't that be 'readFile "int.hex"' ? -- is IO String, the catch-branch must return a String, too.
hexFile <- readFile "int.hex" --res of program goes here getLine return()
I suggest main = do removeFile "./newint.hex" catch (do hexFile <- readFile "int.hex" whatever you want to do now) (putStrLn "doesn't exist") I think that'll work, Daniel
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
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe