Swift2.0异常处理

// 在抛出异常之前,我们需要在函数或方法的返回箭头 -> 前使用 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.

posted @ 2016-05-10 14:32  Rinpe  阅读(141)  评论(0编辑  收藏  举报