Ich möchte ein NSAlert-style Fehlerblatt von einem Swift Exception-Handler generieren. In der Vergangenheit mit Objective-C habe ich einfach [NSAlert alertWithError:]
Jetzt mit Swift verwenden könnte und seine eigene Exception-Handling-System in der Mischung, fühlen Warnungen eher klobig:Generate Error Sheet von Swift Exception
enum Problems: ErrorType {
case Bad
case Worse
}
func f() throws {
throw Problems.Worse
}
func g() {
let errorMessage: String
do {
try f()
}
catch Problems.Bad {
errorMessage = "This was bad"
}
catch Problems.Worse {
errorMessage = "This was even worse"
}
catch {
errorMessage = "This was unexpected"
}
guard errorMessage == nil else {
let alert = NSAlert()
alert.messageText = "Error"
alert.informativeText = errorMessage
alert.beginSheetModalForWindow(self, completionHandler: { [unowned self] (returnCode) -> Void in
if returnCode == NSAlertFirstButtonReturn {
// Handle the response
}
})
}
Das fühlt sich kludgy und wie es nicht gut skalierbar ist, wenn es Es gibt viele Fehlerbedingungen, die überprüft werden müssen. Gibt es einen besseren Weg?