我了解如何创建自己的错误并使用throws
关键字在Swift中触发它们。我没有得到的是如何复制其他语言(或Ruby try - catch
)中的常规rescue
来处理未处理的异常。
示例(在Swift中):
func divideStuff(a: Int, by: Int) -> Int {
return a / by
}
let num = divideStuff(4, by: 0) //divide by 0 exception
以下是我在C#中处理它的方式,例如:
int DivideStuff(int a, int b) {
int result;
try {
result = a / b;
}
catch {
result = 0;
}
return result;
}
如何使用Swift实现相同的目标?
答案 0 :(得分:2)
您也可以这样处理:
enum MyErrors: ErrorType {
case DivisionByZero
}
func divideStuff(a: Int, by: Int) throws -> Int {
if by == 0 {
throw MyErrors.DivisionByZero
}
return a / by
}
let result: Int
do {
result = try divideStuff(10, by: 0)
} catch {
// ...
}
答案 1 :(得分:1)
在Swift中,没有捕获任意运行时错误的功能 开发人员负责正确处理错误。
例如
func divideStuff(a : Int, b : Int) -> Int {
if b == 0 { return 0 }
return a / b
}