Thread overview | |||||
---|---|---|---|---|---|
|
March 08, 2021 How to handle exceptions right? | ||||
---|---|---|---|---|
| ||||
I want to call functions according to an exception. In C there is the errno function. But if I use try...catch, it shows a trace or a message. How do I check an exception type? For example: std.socket.SocketOSException@std/socket.d(2857): Unable to connect socket: Connection refused ---------------- ??:? [0x459ec5] ??:? [0x4646e6] ??:? [0x44743d] ??:? [0x42c833] ??:? [0x404273] ??:? [0x404cf8] ??:? [0x440a43] ??:? [0x7fdeccecc3f8] ??:? clone [0x7fdeccc98b52] or Unable to connect socket: Connection refused So do I just need to check the exception string? Or there is something like errno in C? |
March 09, 2021 Re: How to handle exceptions right? | ||||
---|---|---|---|---|
| ||||
Posted in reply to dog2002 | https://github.com/dlang/phobos/blob/master/std/socket.d#L190 Might be of some use to you |
March 08, 2021 Re: How to handle exceptions right? | ||||
---|---|---|---|---|
| ||||
Posted in reply to dog2002 | On 3/8/21 8:05 AM, dog2002 wrote:
> I want to call functions according to an exception. In C there is the errno function. But if I use try...catch, it shows a trace or a message. How do I check an exception type? For example:
>
> std.socket.SocketOSException@std/socket.d(2857): Unable to connect socket: Connection refused
> ----------------
> ??:? [0x459ec5]
> ??:? [0x4646e6]
> ??:? [0x44743d]
> ??:? [0x42c833]
> ??:? [0x404273]
> ??:? [0x404cf8]
> ??:? [0x440a43]
> ??:? [0x7fdeccecc3f8]
> ??:? clone [0x7fdeccc98b52]
>
> or
>
> Unable to connect socket: Connection refused
>
> So do I just need to check the exception string? Or there is something like errno in C?
In the case where you are actually looking to see what *type* the exception is:
try {
... // socket code
}
catch(SocketException e)
{
// it's a socket exception here
}
catch(Exception e)
{
// otherwise, it's a different kind of exception
}
-Steve
|
Copyright © 1999-2021 by the D Language Foundation