0

数日前にSwiftを学び始めたばかりです。私の Xcode プレイグラウンドには、次のコードがあります。

//: Playground - noun: a place where people can play

import UIKit

enum VendingMachineError: ErrorType {
    case InvalidSelection
    case InsufficientFunds(coinsNeeded: Int)
    case OutOfStock
}


func requestBeverage(code: Int, coins: Int) throws {
    guard code > 0 else  {
        throw VendingMachineError.InvalidSelection
    }
    if coins < 2 {
        throw VendingMachineError.InsufficientFunds(coinsNeeded: 3)
    }
    guard coins > 10 else {
        throw VendingMachineError.OutOfStock
    }

    print("everything went ok")
}



try requestBeverage(-1, coins: 4)
print("finished...")

実行しようとしても、何も起こりません。しかし、私のロジックでは、何かをしようとして失敗し、プログラムが続行されるため、「終了...」と出力することを期待します....

問題は、なぜプログラムが続行されないのかということです。また、エラーが発生した場合にコードをできるだけ短い言葉で続行するように指示するにはどうすればよいでしょうか?

前もって感謝します

4

2 に答える 2

1

エラーをキャッチする必要があります

... 

do {
  try requestBeverage(-1, coins: 4)
} catch {
  print(error)
}
print("finished...")

Swift 言語ガイドのエラー処理を参照してください。

編集: 式全体を 1 行で記述できます ;-)

do { try requestBeverage(-1, coins: 4) } catch { print(error) }
于 2016-04-26T10:59:49.920 に答える