1
enum PrinterError: ErrorType {
case OutOfPaper
case NoToner
case OnFire
}
2
func sendToPrinter(printerName: String) throws -> String {
if printerName == "Never Has Toner" {
throw PrinterError.NoToner
}
return "Job sent"
}
3
do {
let printerResponse = try sendToPrinter("Bi Sheng")
print(printerResponse)
}catch {
print(error)
}
4
do {
let printerResponse = try sendToPrinter("Gutenberg")
print(printerResponse)
}catch PrinterError.OnFire {
print("I'11 just put this over here, with the rest of the fire.")
}catch let printerError as PrinterError {
print("printer error: \(printerError).")
} catch {
print(error)
}
5
let printerSuccess = try? sendToPrinter("Mergenthaler")
let printerFailure = try? sendToPrinter("Never Has Toner")
6
var fridgeIsOpen = false
let fridgeContent = ["milk", "eggs", "leftovers"]
func fridgeContent(itemName: String) -> Bool {
fridgeIsOpen = true
defer {
fridgeIsOpen = false
}
let result = fridgeContent.contains(itemName)
return result
}
fridgeContains("banana")
print(fridgeIsOpen)