我正在尝试学习Swift,并想知道苹果对下面实验的预期答案,该实验在苹果公司GuidedTour游乐场的“ 错误处理”部分中提供,如下所示;
实验:添加代码以在do块内引发错误。您需要引发哪种错误,以便第一个catch块可以处理该错误?那第二块和第三块呢?
enum PrinterError: ErrorType {
case OutOfPaper
case NoToner
case OnFire
}
func sendToPrinter(printerName: String) throws -> String {
if printerName == "Never Has Toner" {
throw PrinterError.NoToner
}
return "Job sent"
}
do {
let printerResponse = try sendToPrinter("Gutenberg")
print(printerResponse)
} catch PrinterError.OnFire {
print("I'll just put this over here, with the rest of the fire.")
} catch let printerError as PrinterError {
print("Printer error: \(printerError).")
} catch {
print(error)
}
Run Code Online (Sandbox Code Playgroud)
以下是我对本实验中提出的问题的回答,它们似乎都可以起作用...
您需要引发哪种错误,以便第一个catch块可以处理该错误? …