4 ms·
Unchecked exceptions will eventually lead into programs crashing because some developer forgot to catch specific type of exception somewhere.
by rauli_ 8mo ago
Unchecked exceptions will eventually lead into programs crashing because some developer forgot to catch specific type of exception somewhere.
- drysine 8mo agoAnd developers never forget to check error codes.
- dan00 8mo agoLooking at code, it‘s easier to spot the missing check for an error code, than a not catched exceptions. Also error codes are part of the signature of a function, which exceptions aren‘t.
- drysine 8mo agoIf you need to wrap each call in try/catch, it's better to use return codes in some form or rethink the approach.
- listeria 8mo agomay I introduce you to the nodiscard attribute[1]? enum (class)? [[nodiscard]] Error { Ok, NoMem, ... }; [1]: https://en.cppreference.com/w/cpp/language/attributes/nodiscard.html https://en.cppreference.com/w/cpp/language/attributes/nodisc...
- drysine 8mo agoC attribute: nodiscard (since C23) [1] https://en.cppreference.com/w/c/language/attributes/nodiscard https://en.cppreference.com/w/c/language/attributes/nodiscar...
- senderista 8mo agoFWIW I’ve been using warn_unused_result in both gcc and clang since about 2020.
- drysine 8mo agoYep, partial remedies are available for quite some time.
- ahtihn 8mo agoThat seems like a better outcome than continuing when an error happened while thinking everything succeeded?
- yunnpp 8mo agoYes, but that's not a dichotomy. Languages like Java have function declare what exceptions they throw, and the caller must either catch it or also declare that it throws it. Gets cumbersome quickly, but I believe it's for the best to encode exceptions at the type system.