Problem Statement
What is the difference between `try?` and `try!` in Swift?
Explanation
Using `try?` converts a throwing expression into an optional: if the function throws, you get nil, otherwise the result. `try!` unwraps forcibly and if the function throws an error it triggers a runtime crash. Knowing when to use each safely is important for robust Swift code.