If Picard unexpectedly crashes it currently is hard for the user to get error details for reporting. This is especially true in the following cases:
- The user is running a packaged app on Windows or macOS. In these environments it is more difficult or even impossible (e.g. Windows store app) to get any console output. Crashes just happen
- Crashes during startup are especially hard to track down
- Crashes that are not easily reproducible (e.g. threading related race conditions) happen surprisingly. The user might not be able to start Picard from console again to reproduce the same issue.
- The error handling should both attempt to store the crash to a log file and display it to the user
- Initializing the error handling should happen as early as possible
- The error handling code itself must minimize it's own potential to fail