Ios 关于错误处理,如何处理这个错误

Ios 关于错误处理,如何处理这个错误,ios,swift,error-handling,Ios,Swift,Error Handling,这是我的代码,当我输入20如下。它显示了一个错误。请参阅附加文件 enum GuessNumberGameError: Error { case wrongNumber } class GuessNumerGame { var targetNumber = 10 func guess (number : Int) throws { guard number == targetNumber else { print

这是我的代码,当我输入20如下。它显示了一个错误。请参阅附加文件

enum GuessNumberGameError: Error {
    case wrongNumber
}
class GuessNumerGame {

 var targetNumber = 10

 func guess (number : Int)  throws
    {
        guard number == targetNumber  else
        {
            print(number)
            throw GuessNumberGameError.wrongNumber
        }
        print("Guess the right number : \(targetNumber)")
    }
}

let test = GuessNumerGame()
try test.guess(number: 20)

您的程序输出

20
error --wrongNumber

如果你只是用它来探索投掷错误,那么上面的答案就是你所需要的。但如果不是

抛出错误通常是为了表示失败的操作,而不是返回测试的成功/失败。在这种情况下,我会进行重构,使函数有一个显示测试结果的返回类型——这将更容易、更优雅地在代码中处理。下面返回Bool类型,但如果仍要使用
GuessNumberGameError
enum,则可以将其扩展为返回
Result
类型

func guess (number : Int) -> Bool {
  if number = targettNumber {
    print("You guessed right: \(number)")
    return true
  } else {
    print("Wrong number")
    return false
  }
}
然后,您可以捕获结果:

let result = test.guess(number:20)
如果打印的文本足够,也可以忽略它

let _ = test.guess(number:20)
请参阅关于“在顶层尝试不做/抓”。
let _ = test.guess(number:20)