Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift异常处理与python异常_Python_Swift_Exception Handling - Fatal编程技术网

Swift异常处理与python异常

Swift异常处理与python异常,python,swift,exception-handling,Python,Swift,Exception Handling,我昨天从Python和Javascript(以及学校的VB.NET)开始学习Swift,在异常处理方面遇到了一些问题 在Python中,我可以这样做: def myFunction(n): x = 3 / n return x try: print(myFunction(0)) except Exception: print("Unexpected incident") 它的工作原理与预期一致。 而在Swift中,我也尝试这样做: func myFunctio

我昨天从Python和Javascript(以及学校的VB.NET)开始学习Swift,在异常处理方面遇到了一些问题

在Python中,我可以这样做:

def myFunction(n):
    x = 3 / n
    return x

try:
    print(myFunction(0))
except Exception:
    print("Unexpected incident")
它的工作原理与预期一致。 而在Swift中,我也尝试这样做:

func myFunction(n:Int) throws -> Float {
    var a:Float
    a = 3 / n
    return a
}
do {
    try print(myFunction(0))
} catch {
    print("Unexpected incident")
}
我意识到这一定是一个非常愚蠢的问题,但我就是搞不懂。 我阅读了来自的答案,其中一个答案是关于do/try/catch语法(第三个),但我仍然不知道我做错了什么


任何帮助都将不胜感激。

我认为除法操作员不会在swift中抛出异常。 当
n==0

即:

enum NumericalExceptions: ErrorType {
  case DivideByZero
}

func myFunction(n:Int) throws -> Float {
  guard n != 0 else {
    throw NumericalExceptions.DivideByZero
  }
  return 3 / Float(n)
}
do {
  try print(myFunction(0))
} catch {
  print("Unexpected incident")
}