Swift - Error Handling Last Updated : 06 Jun, 2021 Comments Improve Suggest changes Like Article Like Report Error handling is a response to the errors faced during the execution of a function. A function can throw an error when it encounters an error condition, catch it, and respond appropriately. In simple words, we can add an error handler to a function, to respond to it without exiting the code or the application. Here we will be discussing outputs retained when an error is thrown and not. The following is an example of a function canThrowAnError() with an error handler implemented outside the loop in Swift. Example 1: func canThrowAnError() throws { // This function may or may not throw an error } do { try canThrowAnError() // no error was thrown } catch { // an error was thrown } Remember throws is a keyword that indicates that the function can throw an error when called. Since it can throw an error, we need to add the try keyword in the beginning when the function is called. Errors are automatically propagated out of their current scopes unless handled by the catch clause do propagate the errors to one or more catch clauses. Real-world scenario Case 1: It will throw an error: If the function will throw an error if the seat belt is not fastened or if the fuel is low. Because startCar() can throw an error, the function call is wrapped in a try expression. When a function is wrapped into a do function, it will be propagated to the provided clauses if any errors are thrown. Case 2: It will not throw an error: If the function is called. If an error is thrown, and it matches the carError.noSeatBelt case, then the blinkSeatBeltSign() function will be called. If an error is thrown, and it matches the carError.lowFuel case, then the goToFuelStation(_:) function is called with the associated [String] value captured by the catch pattern. Let us now demonstrate the above case in the same programming language: Example 2: func startCar() throws { // Insert the body of the function here } do { try startCar() turnOnAC() } catch carError.noSeatBelt { blinkSeatBeltSign() } catch carError.lowFuel(let fuel) { goToFuelStation(fuel) } Comment More infoAdvertise with us A aashaypawar Follow Improve Article Tags : Swift Explore Swift Tutorial 10 min read Swift IntroductionSwift - Hello World Program 2 min read Swift - Basic Syntax 5 min read Swift - Keywords 4 min read Swift - Literals 10 min read Swift - Constants, Variables & Print function 2 min read Swift - Operators 8 min read Swift Data TypesSwift - Data Types 5 min read Swift - Integer, Floating-Point Numbers 2 min read Strings in Swift 8 min read String Functions and Operators in Swift 10 min read How to Concatenate Strings in Swift? 3 min read How to Append a String to Another String in Swift? 2 min read How to Insert a Character in String at Specific Index in Swift? 2 min read How to check if a string contains another string in Swift? 2 min read How to remove a specific character from a string in Swift? 2 min read Data Type Conversions in Swift 5 min read Swift - Convert String to Int Swift 3 min read Swift Control FlowSwift - Decision Making Statements 5 min read Swift - If Statement 3 min read Swift - If-else Statement 3 min read Swift - If-else-if Statement 3 min read Swift - Nested if-else Statement 4 min read Swift - Switch Statement 10 min read Swift - Loops 5 min read Swift - While Loop 2 min read Swift - Repeat While loop 3 min read Swift - For-in Loop 6 min read Swift - Control Statements in Loops 5 min read Swift - Break Statement 6 min read Swift - Fallthrough Statement 4 min read Swift - Guard Statement 15 min read Swift FunctionsCalling Functions in Swift 6 min read Swift Function Parameters and Return Values 10 min read How to Use Variadic Parameters in Swift? 6 min read Swift - In Out Parameters 4 min read Swift - Nested Function 5 min read Swift - Function Overloading 8 min read Closures in Swift 9 min read Escaping and Non-Escaping Closures in Swift 5 min read Higher-Order Functions in Swift 10 min read Swift CollectionsSwift - Arrays 9 min read Swift - Arrays Properties 4 min read Swift - How to Store Values in Arrays? 4 min read How to Remove the last element from an Array in Swift? 4 min read How to Remove the First element from an Array in Swift? 4 min read How to count the elements of an Array in Swift? 2 min read How to Reverse an Array in Swift? 3 min read Swift Array joined() function 3 min read How to check if the array contains a given element in Swift? 3 min read Sorting an Array in Swift 5 min read How to Swap Array items in Swift? 2 min read How to check if an array is empty in Swift? 2 min read Swift - Sets 15+ min read Swift - Set Operations 9 min read How to remove first element from the Set in Swift? 2 min read How to remove all the elements from the Set in Swift? 2 min read How to check if the set contains a given element in Swift? 3 min read How to count the elements of a Set in Swift? 2 min read Sorting a Set in Swift 4 min read How to check if a set is empty in Swift? 2 min read How to shuffle the elements of a set in Swift? 2 min read Swift - Difference Between Sets and Arrays 3 min read Swift - Dictionary 9 min read Swift - Tuples 3 min read Swift - Iterate Arrays and Dictionaries 6 min read Swift OOPsSwift Structures 7 min read Swift - Properties and its Different Types 13 min read Swift - Methods 5 min read Swift - Difference Between Function and Method 4 min read Swift - Deinitialization and How its Works? 4 min read Typecasting in Swift 7 min read Repeating Timers in Swift 4 min read Non Repeating Timers in Swift 7 min read Difference between Repeating and Non-Repeating timers in Swift 4 min read Optional Chaining in Swift 9 min read Singleton Class in Swift 4 min read Swift Additional TopicsSwift - Error Handling 2 min read Difference between Try, Try?, and Try! in Swift 4 min read Swift - Typealias 7 min read Important Points to Know About Java and Swift 3 min read Difference between Swift Structures and C Structure 4 min read How to Build and Publish SCADE Apps to Apple and Google Stores? 11 min read 6 Best iOS Project Ideas For Beginners 8 min read Like