Hi Jon, I ran into a similar situation and needed a way to not only catch NSExceptions from Swift, but throw them as well. If it would he useful to you, it's part of the open-source CleanroomBridging module, which is intended to ease a few Swift/ObjC interoperability issues. The header file for the exception-related code is here:
https://github.com/emaloney/CleanroomBridging/blob/master/Sources/Exception.h <https://github.com/emaloney/CleanroomBridging/blob/master/Sources/Exception.h> It is included in the module's bridging header, so you can use it from Swift. Evan > On Mar 24, 2016, at 2:06 PM, Jon Brooks via swift-evolution > <[email protected]> wrote: > > Apologies if this has come up before - I've fallen behind in following this > list. > > I recently ran into an issue where I needed to be able to catch NSExceptions > raised by Objective C API in Swift, and found no good way to do that. > Currently the only possible way is to via Objective C code that wraps the > call in an Objective C style @try/@catch block. If building a swift > framework, this means a separate module, since we can't use bridging headers. > > My quick attempt at a workaround can be seen here: > https://github.com/jonbrooks/ObjCTryCatch > <https://github.com/jonbrooks/ObjCTryCatch> and there are other workarounds > out there too. I wondered if there has been any discussion to building > something like this into swift directly. I don't really have any good ideas, > but maybe something like > > do { > objc_try someObjectiveCInstance.methodThatMightRaiseException() > } catch { > //error would be an ErrorType that contains info about the exception > raised, or the exception itself? > } > > Any thoughts? > > > > _______________________________________________ > swift-evolution mailing list > [email protected] > https://lists.swift.org/mailman/listinfo/swift-evolution
_______________________________________________ swift-evolution mailing list [email protected] https://lists.swift.org/mailman/listinfo/swift-evolution
