我想添加代码以引发需要“catch let printerErrorsecond”和最后一个 catch 块来处理错误的错误。我尝试将 toPrinter 参数的值更新为多个值,但没有任何运气。我还尝试了一些 else if 语句,但似乎无法让最后两个 catch 块中的任何一个来处理错误。似乎可以在 PrinterError 枚举中添加两者的情况,但经过多次尝试,我无法解决问题。您可以提供更好的任何基于代码的解决方案!
enum PrinterError: Error {
case outOfPaper
case noToner
case onFire
}
func send(job: Int, toPrinter printerName: String) throws -> String {
if printerName == "Never Has Toner" {
throw PrinterError.noToner
} else if printerName == "Fire" {
throw PrinterError.onFire
} else if printerName == "Empty" {
throw PrinterError.outOfPaper
}
return "Job sent"
}
do {
let printerResponse = try send(job: 1440, toPrinter: "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)
}
// Prints "Job sent"