如何处理有关错误处理的错误

时间:2019-11-12 10:42:40

标签: ios swift error-handling

这是我的代码,当我如下输入20时。显示错误。查看附件文件

aliyun.accelerator/nvidia_count=1                          #This field is important.
aliyun.accelerator/nvidia_mem=12209MiB
aliyun.accelerator/nvidia_name=Tesla-M40

enter image description here

2 个答案:

答案 0 :(得分:0)

let test = GuessNumerGame()
do
{
  try test.guess(number: 20)
}catch let error
 {
 print("error --\(error)")
 }

您的程序输出

20
error --wrongNumber

答案 1 :(得分:0)

如果仅使用此方法来探索抛出错误,那么上面的答案就是您所需要的。但是如果没有...

通常会抛出错误来表示失败的操作,而不是返回测试的成功/失败。在这种情况下,我将进行重构,以便该函数具有一个返回类型,该返回类型可以显示测试的结果-这将在您的代码中更容易且更优雅地处理。下面返回一个Bool类型,但是如果您仍然想使用Result<Int>枚举,则可以将其扩展为返回GuessNumberGameError类型。

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)