This restructures large parts of the GUI-wise error handling code and makes it more fine-grained, so the user can react appropriately to exceptions.