编辑代码


/*1采用ErrorType协议的类型来表示错误*/
enum  PrinterError: ErrorType {
    case OutOfPaper
    case NoToner
    case OnFire
}
/*2*/
func sendToPringter(printerName: String) throws -> String {
    if printerName == "Never Has Toner" {
        throw PrinterError.NoToner
    }
    return "Job sent"
}

/*3*/
do {
    let printerResponse = try sendToPringter("Bi Sheng")
    print(printerResponse)
} catch {
    print(error)
}

/*4练习:将printerResponse改为“Never Has Toner”,使sendToPrinter()函数抛出错误*/
do {
    let printerResponse = try sendToPringter("Gutenberg")
    pring(pringerResponse)
} catch PrinterError.OnFire {
    pring("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)
}

/*5*/
var fridgeIsOpe = false
let fridgeContent = ["milk","eggs","leftovers"]

func fridgeContains(itemName: string) -> Bool{
    fridgeIsOpe = trun
    defer {
        fridgeIsOpe = false
    }

    let result = fridgeContent.contains(itemName)
    return result
}
fridgeContains("banana")
print(fridgeIsOpe)