2
我想从Swift异常处理程序生成一个NSAlert样式的错误表。在与Objective-C的过去,我可以简单地与雨燕采用[NSAlert alertWithError:]
现在和它自己的异常处理系统中拌匀,警报感到非常笨拙:从Swift异常生成错误表
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
}
})
}
这种感觉缺憾和一样,如果它不能很好地有有很多错误条件必须检查。有没有更好的办法?