Ios 关于错误处理,如何处理这个错误
这是我的代码,当我输入20如下。它显示了一个错误。请参阅附加文件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
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)