digitalmars.D.learn - How to handle exceptions right?
- dog2002 (19/19) Mar 08 2021 I want to call functions according to an exception. In C there is
- rikki cattermole (2/2) Mar 08 2021 https://github.com/dlang/phobos/blob/master/std/socket.d#L190
- Steven Schveighoffer (15/38) Mar 08 2021 In the case where you are actually looking to see what *type* the
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?
Mar 08 2021
https://github.com/dlang/phobos/blob/master/std/socket.d#L190 Might be of some use to you
Mar 08 2021
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
Mar 08 2021