我在游乐场中获得了以下代码:
func throwsError() throws{ var x = [1,2] print(x[3]) } func start(){ do{ try throwsError() } catch let unknown{ "unknown: \(unknown)" } } start()
因此很明显,该'throwsError函数会引发错误:
'throwsError
执行被中断,原因:EXC_BAD_INSTRUCTION
有没有办法抓住这个?我在线阅读文章,为Array类编写一个下标,该下标始终检查范围,但问题更大:我无法捕捉任何东西吗?
在Swift中,您catch什么都做不到。您只能赶上 错误 与抛出throw由被称为目标C代码的其他银行代码或错误,类型NSError一套说法。
catch
throw
默认的数组下标引发一个 exception ,但不会throw产生Swift 错误 ,因此您不能对其使用try / catch。
另请参阅Erica Sadun的这篇文章。