My expectation is that if any software comes across an unexpected situation, the software should crash rather than try and bluff its way through something it's not designed to handle -- risking data corruption or data loss which is worse than simply crashing and retaining your last known good 'save' point. This is where it's nice to have software that runs e.g. tabs in different processes, so you don't experience an overall crash but just a crash isolated to a tab running e.g. a nefarious JS application.