Swift Q & A


What is the ‘throws’ keyword used for in Swift?

In Swift, the ‘throws’ keyword is an essential component of the language’s error handling mechanism. It is used to indicate that a function, method, or initializer can potentially “throw” an error when specific error conditions are encountered during its execution.


Here’s a detailed explanation of what the ‘throws’ keyword is used for in Swift:


  1. Error Propagation:

   The primary purpose of the ‘throws’ keyword is to signal that a function or method can encounter errors and that it is capable of propagating those errors to its caller. This means that when you call a function marked with ‘throws,’ you must handle any potential errors that might occur. 


  1. Defining Error-Throwing Functions:

   When you define a function or method that can throw errors, you specify ‘throws’ in its signature. For example:

func fetchData() throws {
    // Code that can throw errors

   In this example, the ‘fetchData’ function is declared with ‘throws,’ indicating that it can potentially throw errors during its execution.


  1. Throwing Errors:

   Within a function marked as ‘throws,’ you can use the ‘throw’ keyword to throw specific error instances when error conditions are met. For instance:

func divide(_ a: Int, by b: Int) throws -> Int {
    guard b != 0 else {
        throw DivisionError.divisionByZero
    return a / b

   Here, the ‘divide’ function throws a custom error called ‘DivisionError.divisionByZero’ when attempting to divide by zero.


  1. Error Handling:

   When you call a ‘throws’ function, you must handle potential errors using a ‘do-try-catch’ block. This ensures that you handle errors gracefully and take appropriate actions based on the error type. 

do {
    let result = try divide(10, by: 0)
    print("Result: \(result)")
} catch DivisionError.divisionByZero {
    print("Cannot divide by zero.")
} catch {
    print("An error occurred: \(error)")

   In this example, the ‘do-try-catch’ block catches the ‘DivisionError.divisionByZero’ error and provides custom error handling logic.


The ‘throws’ keyword is a crucial part of Swift’s robust error handling system, allowing developers to write code that gracefully handles errors and communicates potential issues to the caller, ultimately leading to more reliable and maintainable applications.

Previously at
Flag Argentina
time icon
Experienced iOS Engineer with 7+ years mastering Swift. Created fintech solutions, enhanced biopharma apps, and transformed retail experiences.