Swift version: 5.6
Throwing functions in Swift are the main way we have of signaling that an operation failed, but sometimes it can be annoying to define a whole new error enum just to report a simple failure.
With a small extension to String
you can make the whole process easier:
extension String: LocalizedError {
public var errorDescription: String? { return self }
}
With that change you can now throw strings as errors, and they work just like regular errors. For example, you can create a throwing function like this one:
func doDangerousThing() throws {
throw "I'm sorry, Dave, I can't do that."
}
Then attempt to run it and print any errors that are thrown, like this:
do {
try doDangerousThing()
} catch {
print(error.localizedDescription)
}
This only really works for errors that have one case, because you can’t match specific string errors.
SPONSORED Get accurate app localizations in minutes using AI. Choose your languages & receive translations for 40+ markets!
Sponsor Hacking with Swift and reach the world's largest Swift community!
Available from iOS 8.0
This is part of the Swift Knowledge Base, a free, searchable collection of solutions for common iOS questions.
Link copied to your pasteboard.