Bird
Raised Fist0
Swiftprogramming~10 mins

Try! for forced unwrap in Swift - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to force unwrap the result of the throwing function using try!

Swift
func getNumber() throws -> Int {
    return 42
}

let number = [1] getNumber()
Drag options to blanks, or click blank then click option'
Atry?
Btry
Ctry!
Dcatch
Attempts:
3 left
💡 Hint
Common Mistakes
Using try without handling errors causes a compile error.
Using try? returns an optional, not a forced unwrap.
Using catch is for error handling, not unwrapping.
2fill in blank
medium

Complete the code to force unwrap the string returned by the throwing function using try!

Swift
func fetchName() throws -> String {
    return "Alice"
}

let name: String = [1] fetchName()
Drag options to blanks, or click blank then click option'
Acatch
Btry?
Ctry
Dtry!
Attempts:
3 left
💡 Hint
Common Mistakes
Using try? returns an optional String, not a forced unwrap.
Using try without a do-catch block causes an error.
Using catch is not valid syntax here.
3fill in blank
hard

Fix the error by force unwrapping the result of the throwing function using try!

Swift
func getValue() throws -> Double {
    return 3.14
}

let value = [1] getValue()
Drag options to blanks, or click blank then click option'
Atry
Btry!
Ctry?
Dcatch
Attempts:
3 left
💡 Hint
Common Mistakes
Using try without a do-catch block causes a compile error.
Using try? returns an optional, not a forced unwrap.
Using catch is not valid here.
4fill in blank
hard

Fill both blanks to populate the dictionary that stores the forced unwrapped length of each word if the length is greater than 3.

Swift
func getLength(_ word: String) throws -> Int {
    return word.count
}

let words = ["apple", "cat", "banana", "dog"]
var lengths = [String: Int]()
for word in words {
    if [1](word).count [2] 3 {
        lengths[word] = try! getLength(word)
    }
}
Drag options to blanks, or click blank then click option'
AString
B>
C<
DInt
Attempts:
3 left
💡 Hint
Common Mistakes
Using Int(word) instead of String(word) causes errors.
Using < instead of > changes the logic.
Not using try! to force unwrap the function result.
5fill in blank
hard

Fill both blanks to create a dictionary that maps uppercase words to their forced unwrapped lengths if the length is greater than 4.

Swift
func getLength(_ word: String) throws -> Int {
    return word.count
}

let words = ["apple", "pear", "banana", "kiwi"]
var lengths = [String: Int]()
for word in words {
    if word.count [1] 4 {
        lengths[word[2]] = try! getLength(word)
    }
}
Drag options to blanks, or click blank then click option'
A>
B.uppercased()
C<
D.lowercased()
Attempts:
3 left
💡 Hint
Common Mistakes
Using < instead of > changes the condition.
Using .lowercased() instead of .uppercased() changes the key.
Not using try! to force unwrap the function result.

Practice

(1/5)
1. What does try! do in Swift when calling a function that can throw an error?
easy
A. It catches errors and handles them gracefully.
B. It converts the error into a warning message.
C. It ignores the function and returns nil.
D. It runs the function and forces the result without catching errors.

Solution

  1. Step 1: Understand the role of try!

    try! runs a throwing function but does not catch errors.
  2. Step 2: Recognize the behavior on error

    If an error occurs, the program crashes instead of handling it.
  3. Final Answer:

    It runs the function and forces the result without catching errors. -> Option D
  4. Quick Check:

    try! forces result without error handling [OK]
Hint: Remember: try! crashes on error, no catch block used [OK]
Common Mistakes:
  • Thinking try! catches errors
  • Assuming try! returns nil on error
  • Confusing try! with try?
2. Which of the following is the correct syntax to use try! with a throwing function named loadData()?
easy
A. let data = try! loadData()
B. let data = try loadData()
C. let data = try? loadData()
D. let data = loadData()!

Solution

  1. Step 1: Recall correct try! syntax

    The forced try syntax is try! followed by the function call.
  2. Step 2: Match syntax to options

    let data = try! loadData() uses try! correctly before loadData().
  3. Final Answer:

    let data = try! loadData() -> Option A
  4. Quick Check:

    Correct forced try syntax = let data = try! loadData() [OK]
Hint: Use try! directly before the function call without parentheses [OK]
Common Mistakes:
  • Using try without ! for forced unwrap
  • Using try? which returns optional
  • Adding ! after function call incorrectly
3. Consider this Swift code:
func getNumber() throws -> Int {
  return 42
}

let result = try! getNumber()
print(result)

What will be the output when this code runs?
medium
A. nil
B. 42
C. Runtime error
D. Compilation error

Solution

  1. Step 1: Analyze the throwing function

    getNumber() always returns 42 and does not throw an error.
  2. Step 2: Understand try! behavior here

    Since no error occurs, try! unwraps the result safely.
  3. Final Answer:

    42 -> Option B
  4. Quick Check:

    No error thrown, so output is 42 [OK]
Hint: If no error thrown, try! returns value directly [OK]
Common Mistakes:
  • Expecting runtime error even if no error thrown
  • Thinking try! returns optional
  • Confusing with try? behavior
4. What is the problem with this Swift code?
func fail() throws -> String {
  throw NSError(domain: "Error", code: 1)
}

let text = try! fail()
print(text)
medium
A. It causes a runtime crash due to forced unwrap of error.
B. It compiles but prints an empty string.
C. It returns nil without crashing.
D. It causes a compile-time error.

Solution

  1. Step 1: Identify the throwing function behavior

    fail() always throws an error when called.
  2. Step 2: Understand try! effect on error

    try! forces unwrap and crashes if an error is thrown.
  3. Final Answer:

    It causes a runtime crash due to forced unwrap of error. -> Option A
  4. Quick Check:

    try! crashes on thrown error [OK]
Hint: try! crashes if error thrown, no catch block used [OK]
Common Mistakes:
  • Expecting graceful error handling
  • Thinking it returns nil on error
  • Assuming compile-time error
5. You have a function that reads a configuration file and throws an error if the file is missing:
func readConfig() throws -> String {
  // throws if file missing
  return "Config data"
}

You want to use try! safely. Which approach is best to avoid crashing your app?
hard
A. Replace try! with try? and ignore errors.
B. Always use try! without any checks.
C. Use try! only after checking the file exists.
D. Use try! inside a do-catch block.

Solution

  1. Step 1: Understand try! risk

    try! crashes if an error occurs, so it must be used only when sure no error happens.
  2. Step 2: Apply safe usage

    Checking file existence before calling try! ensures no error will be thrown.
  3. Final Answer:

    Use try! only after checking the file exists. -> Option C
  4. Quick Check:

    Safe use of try! requires prior error prevention [OK]
Hint: Check conditions before try! to avoid crashes [OK]
Common Mistakes:
  • Using try! blindly without checks
  • Ignoring errors with try?
  • Misusing try! inside do-catch
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