Error handling basics

suggest change

Functions in Swift may return values, throw errors, or both:

-> Intthrowsthrows-> Int

Any value which conforms to the ErrorType protocol (including NSError objects) can be thrown as an error. Enumerations provide a convenient way to define custom errors:

enum NetworkError: ErrorType {
    case Offline
    case ServerError(String)
}
enum NetworkError: Error {
    // Swift 3 dictates that enum cases should be `lowerCamelCase`
    case offline
    case serverError(String)
}

An error indicates a non-fatal failure during program execution, and is handled with the specialized control-flow constructs do/catch, throw, and try.

throwsthrowreturnthrow

Errors can be caught with do/catch:

dotrycatch

Any function which can throw an error must be called using try, try?, or try!:

dotrycatchthrowstrytry?try!

Feedback about page:

Feedback:
Optional: your email if you want me to get back to you:



Table Of Contents