Howto catch SocketOSException?

bauss via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Sat Mar 25 18:22:24 PDT 2017


On Sunday, 26 March 2017 at 00:34:03 UTC, Jolly James wrote:
> How do you catch an std.socket.SocketOSException?
>
>
> The following does not work, as the exception occurs anyway and 
> leads to a crash:
>
>>import ae.net.asockets;
>>
>>void main(string[] args)
>>{
>>	TcpServer tcp = new TcpServer();
>>
>>	try
>>	{
>>		tcp.listen(2345, "127.0.0.1c");
>>		// '...c' makes the IP address invalid
>>	}
>>	catch (std.socket.SocketOSException e)
>>	{
>>		return;
>>	}
>>	catch (Exception e)
>>	{
>>		return;
>>	}
>>
>>	socketManager.loop();
>>}
>
> Output:
>>std.socket.SocketOSException at std\socket.d(975): getaddrinfo 
>>error: Unknown Host

This part:
catch (std.socket.SocketOSException e)
>	{
>		return;
>	}

Is redundant, because SocketOSException inherits SocketException 
which inherits Exception.

It should already be caught by catch (Exception e)

You should have a full stacktrace, chances are that it's invoked 
in your loop()?


More information about the Digitalmars-d-learn mailing list