一尘不染

Swift中的try-catch异常

swift

可以在Swift中捕获异常吗?给出以下代码:

NSException.raise(NSRangeException,
    format: "Now you've gone too far!",
    arguments: CVaListPointer(fromUnsafePointer: UnsafePointer()))

是否可以防止异常导致整个程序崩溃?也就是说,Objective-C中的Swift等效于什么:

@try {
    [NSException raise:NSRangeException format:@"Now you've gone too far!"];
}

阅读 398

收藏
2020-07-07

共1个答案

一尘不染

它没有异常处理,并且在开发人员论坛中的讨论讨论了为什么会这样

但请记住,可可和可可触控传统上并不打算让您捕获异常。他们打算让您不要将它们放在首位。普通错误应使用可选类型和inout
NSError参数处理;您应该通过编写更好的代码来解决任何导致断言失败的情况(这似乎是Swift中唯一的异常抛出机制)。

2020-07-07