// 在抛出异常之前,我们需要在函数或方法的返回箭头 -> 前使用 throws 来标明将会抛出异常 func myMethodRetrunString() throws -> String func myMethodRetrunNothing() throws
如何抛出异常
func myMethod() throws { if item = nil { throw MyError.NotExist } }
如何获取并处理异常?
do { try myMethod() } catch MyError.NotExist { // deal with error } catch MyError. OutOfRange { // deal with error }
不处理异常
如果我不想处理异常怎么办,或者说,我非常确定某个方法或者函数虽然声明会抛出异常,但是我自己知道我在使用时候是绝对不会抛出任何异常的。这种情况下 我们可以使用 try!
try! myMethod()
当然,如果你使用 try!
,而你的方法或者函数抛出了异常,那么你会得到一个运行中异常 (runtime error) 所以我们开发者需要慎用哦。
补充一点, try! 在苹果的资料里说是" Disabling Error Propagation ", 禁止错误继续传播.
而 try 是向上级的scope传播错误, 这和其他一些高级语言的try略有不同, 其他的高级语言try是捕获异常的意思.
swift里, 可以只有try, 没有catch.