On Sun, 3 Mar 2002 dominic.j.steinitz@britishairways.com wrote:
Here's my test program. TCP is a valid protocol. But I get the following when I run it. I'm running under W98 by the way. I have two questions:
1) Why do I get an error?
You want:
module Main(main) where
import BSD import Socket (withSocketsDo)
main = withSocketsDo $ do protocolEntry <- getProtocolByName "TCP" ...
See http://www.haskell.org/ghc/docs/latest/set/socket.html#AEN14601
2) Even if this is a valid error why doesn't the function tell me so that I can handle it rather than terminating?
It is a valid error. It is raising an exception which you can catch if you want. e.g. import IO (catch, isDoesNotExistError) ... catch (do protocolEntry <- getProtocolByName "TCP" putStrLn ("Protocol name:" ++ (protoName protocolEntry))) (\e -> if isDoesNotExistError e then putStrLn "Error" else ioError e) Finn.