When you extend String to support ErrorType, you can just throw strings as errors. Does it get any simpler than this?
extension String: ErrorType {} func raiseError(reason : String) throws { throw reason} do {try raiseError("immediate failpoint")} catch {print(error)}
Actually, I’m kind of fond of this too:
extension String: ErrorType {} extension ErrorType { public func contextString( file : String = __FILE__, function : String = __FUNCTION__, line : Int = __LINE__) -> String { return "\(function):\(file):\(line) \(self)" } } func raiseError() throws { throw "failpoint".contextString()} do {try raiseError()} catch {print(error)}
Comments are closed.