Bird
Raised Fist0
Swiftprogramming~5 mins

Do-try-catch execution flow in Swift - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is the purpose of the do block in Swift's do-try-catch execution flow?
The do block contains code that might throw an error. It allows you to try running this code and catch errors if they happen.
Click to reveal answer
beginner
What keyword do you use to call a function that can throw an error inside a do block?
You use the try keyword before the function call to indicate it might throw an error.
Click to reveal answer
intermediate
What happens when an error is thrown inside a do block?
The program immediately jumps to the matching catch block to handle the error. The rest of the do block is skipped.
Click to reveal answer
intermediate
Can you have multiple catch blocks in Swift? What is their use?
Yes, you can have multiple catch blocks to handle different types of errors separately, making error handling more precise.
Click to reveal answer
advanced
What is the role of the try? and try! keywords in Swift?
try? converts errors to optional values (nil if error), allowing safe error ignoring. try! forces the call and crashes if an error occurs, so use only when sure no error will happen.
Click to reveal answer
What keyword do you use to handle errors thrown by a function in Swift?
Ado
Bcatch
Cthrow
Dtry
What happens if an error is thrown inside a do block?
AExecution jumps to the matching <code>catch</code> block.
BThe error is ignored.
CThe program continues normally.
DThe program crashes immediately.
Which keyword is used to define the block that catches errors?
Atry
Bcatch
Cthrow
Ddo
What does try? do in Swift?
AForces the function to throw an error.
BIgnores the error completely.
CConverts the error to an optional value.
DCatches the error automatically.
Can you have multiple catch blocks in Swift?
AYes, to handle different error types.
BNo, errors are handled in the do block.
CYes, but only one will run.
DNo, only one catch block is allowed.
Explain the flow of execution in a Swift do-try-catch block when an error is thrown.
Think about what happens step-by-step when an error occurs.
You got /5 concepts.
    Describe the difference between try, try?, and try! in Swift error handling.
    Focus on how each keyword treats errors differently.
    You got /3 concepts.

      Practice

      (1/5)
      1. What is the main purpose of using do-try-catch in Swift?
      easy
      A. To handle errors safely without crashing the program
      B. To create loops that run multiple times
      C. To define new functions
      D. To declare variables with default values

      Solution

      1. Step 1: Understand the role of do-try-catch

        This structure is used to run code that might throw errors and handle those errors gracefully.
      2. Step 2: Identify the purpose

        It prevents the program from crashing by catching errors and allowing alternative actions.
      3. Final Answer:

        To handle errors safely without crashing the program -> Option A
      4. Quick Check:

        Error handling = A [OK]
      Hint: Remember: try means risky code, catch means safe backup [OK]
      Common Mistakes:
      • Confusing error handling with loops
      • Thinking try-catch defines functions
      • Assuming it declares variables
      2. Which of the following is the correct syntax to start a do-try-catch block in Swift?
      easy
      A. try someFunction() do { catch handleError() }
      B. try { do someFunction() } catch { handleError() }
      C. catch { try someFunction() } do { handleError() }
      D. do { try someFunction() } catch { handleError() }

      Solution

      1. Step 1: Recall correct do-try-catch syntax

        The correct syntax starts with do {}, inside which try is used before the function that might throw.
      2. Step 2: Match syntax with options

        do { try someFunction() } catch { handleError() } correctly places do block, uses try inside, and follows with catch block.
      3. Final Answer:

        do { try someFunction() } catch { handleError() } -> Option D
      4. Quick Check:

        Correct syntax = D [OK]
      Hint: Remember: do { try ... } catch { ... } is the pattern [OK]
      Common Mistakes:
      • Placing try outside do block
      • Swapping catch and do blocks
      • Missing curly braces
      3. What will be the output of the following Swift code?
      enum MyError: Error { case fail }
      
      func risky() throws {
        throw MyError.fail
      }
      
      do {
        try risky()
        print("Success")
      } catch {
        print("Caught an error")
      }
      medium
      A. Success
      B. Caught an error
      C. No output
      D. Compile-time error

      Solution

      1. Step 1: Analyze the function risky()

        This function always throws an error of type MyError.fail.
      2. Step 2: Trace the do-try-catch block

        When try risky() runs, it throws an error, so the code jumps to the catch block and prints "Caught an error".
      3. Final Answer:

        Caught an error -> Option B
      4. Quick Check:

        Error thrown = catch block runs = B [OK]
      Hint: If try throws, catch block runs, not code after try [OK]
      Common Mistakes:
      • Assuming code after try runs despite error
      • Thinking no output occurs
      • Confusing compile error with runtime error
      4. Identify the error in this Swift code snippet:
      do {
        try someFunction()
      } catch error {
        print("Error: \(error)")
      }
      
      func someFunction() {
        print("Running")
      }
      medium
      A. Function someFunction() must be marked with throws
      B. Catch block syntax is incorrect
      C. Missing do keyword
      D. Print statement inside catch is invalid

      Solution

      1. Step 1: Check function declaration

        The function someFunction() is called with try, so it must be declared with throws to indicate it can throw errors.
      2. Step 2: Identify mismatch causing error

        Since someFunction() is not marked throws, the compiler will raise an error.
      3. Final Answer:

        Function someFunction() must be marked with throws -> Option A
      4. Quick Check:

        try requires throws function = C [OK]
      Hint: Only functions marked throws can be called with try [OK]
      Common Mistakes:
      • Ignoring throws keyword on function
      • Thinking catch syntax is wrong
      • Assuming print inside catch is invalid
      5. Given this Swift code, what will be printed?
      enum FileError: Error { case notFound, unreadable }
      
      func readFile(_ name: String) throws -> String {
        if name == "missing.txt" { throw FileError.notFound }
        if name == "bad.txt" { throw FileError.unreadable }
        return "File content"
      }
      
      do {
        let content = try readFile("bad.txt")
        print(content)
      } catch FileError.notFound {
        print("File not found")
      } catch {
        print("Other error")
      }
      hard
      A. File content
      B. File not found
      C. Other error
      D. No output

      Solution

      1. Step 1: Analyze the function call

        Calling readFile("bad.txt") throws FileError.unreadable.
      2. Step 2: Check catch blocks for matching error

        The first catch handles FileError.notFound, which does not match. The second catch is a general catch that handles all other errors, so it runs and prints "Other error".
      3. Final Answer:

        Other error -> Option C
      4. Quick Check:

        Specific catch misses, general catch runs = A [OK]
      Hint: Specific catch runs only if error matches exactly [OK]
      Common Mistakes:
      • Assuming first catch runs for all errors
      • Thinking no output occurs
      • Confusing error types
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard