let device = AVCaptureDevice.defaultDevice(withMediaType: AVMediaTypeVideo)
let input:AVCaptureDeviceInput?
do {
input = try AVCaptureDeviceInput.init(device: device)
} catch {
input = nil
}
実行する分の手前にtryキーワードを置くところがポイント。
また、catchの部分でパターンマッチも可能で、
var vendingMachine = VendingMachine()
vendingMachine.coinsDeposited = 8
do {
try buyFavoriteSnack(person: "Alice", vendingMachine: vendingMachine)
} catch VendingMachineError.invalidSelection {
print("Invalid Selection.")
} catch VendingMachineError.outOfStock {
print("Out of Stock.")
} catch VendingMachineError.insufficientFunds(let coinsNeeded) {
print("Insufficient funds. Please insert an additional \(coinsNeeded) coins.")
}
// Prints "Insufficient funds. Please insert an additional 2 coins."
なんて書き方もできる。
ちなみにエラーを投げる関数を定義する場合には、戻り値の手前にthrowsキーワードをつける必要あり。
func canThrowErrors() throws -> String
参考: The Swift Programming Language (Swift 3): Error Handling
0 件のコメント:
コメントを投稿