You mean this won't work?
func throwingFunc() throws {
print("throwingFunc")
throw NSError(domain: "", code: 0)
}
func nonthrowingFunc() {
print("nonThrowingFunc")
}
func proc(closure: () throws -> Void) throws {
print("throwing version")
try closure()
}
func proc(closure: () -> Void) {
print("non throwing version")
closure()
}
func test() {
proc { nonthrowingFunc() }
try! proc { try throwingFunc() }
}
test()