One of the main things I wanted to achieve in my experimental programming language was: When errors occur (Syntax, Name, Type, etc.) keep the program running, no matter how serious or devastating it is.
I know that this is probably very bad, but I just wanted something that doesn’t kill itself on every error – I find it interesting what happens when a serious error occurs but the program continues.
- Does this “paradigm” have a name? I mean expect for
- How bad is it to do the above?
- Are there programs in use out there that just follow: “Hey, this is a fatal, unexpected error – but you know what? I don’t care!”?
On the naming, you could say the language exhibits “pig-headedness”.
Crashing is normally prefered, because programs should not return unpredictable and unrepeatable results. No result is generally better than an unreliable one, especially if you are doing something business critical. For example, it’s better that a customer’s order on Amazon is not processed (they can always re-submit it) than for the customer to be delivered a random product. Some errors are truely unrecoverable, for example if the instruction pointer is corrupted.
You can implement similar bahaviour in most modern languages with catch all exception handlers.