下面这段 Swift 代码会产生 NSInvalidArgumentException 异常:
task = NSTask()
task.launchPath = "/SomeWrongPath"
task.launch()
我该如何捕获异常?据我所知,Swift中的try/catch是用于捕获Swift内部抛出的错误,而不是来自像NSTask这样的对象引发的NSException(我猜它是用ObjC编写的)。我刚开始接触Swift,可能我错过了一些显而易见的东西...
编辑:这是一个有关这个Bug的radar链接(特别是针对NSTask): openradar.appspot.com/22837476
NSPredicate(fromMetadataQueryString:)
。这应该是一个init?
,所以如果字符串有误,则可能会返回nil
,但实际上它只会崩溃并抛出 NSException。 - mattNSException
,那么很容易查看如何创建NSError
(并抛出它,而不是NSException
)。 - Top-Master