4 ms·
> Fail fast is an important principle, but in my opinion fail hard is fairly important too. If your program explodes every time a bug happens you're more likely
by btschaegg 8y ago
> Fail fast is an important principle, but in my opinion fail hard is fairly important too. If your program explodes every time a bug happens you're more likely to fix them. If it merely doesn't do the thing it's supposed to it's easy to miss and easier to ignore.
Indeed.
Having witnessed a couple of disastrous mishaps because someone didn't properly check return codes in their C code, I'd argue it's even worse than that. You can't predict the myriad of wrong ways your System will behave after an ignored error because things that were implicitly taken for granted aren't true anymore. And those are the types of errors that come with a great cost since a) you might not be aware of them the next few months and b) they are usually not easy to find in an automated fashion.
- Doxin 8y agoRight. Not catching an error is as bad as magically catching and ignoring all errors, and for the same reason: The state of the system is clearly unknown. Specific actions must be taken in response to the error to recover. It's generally safer to kill the entire system than to keep chugging on after an error without a tailored error handler.