[swift-evolution] Proposal: Optional unwrap resulting in exception.

Nikolay Petrov sungon at gmail.com
Fri Dec 4 15:00:20 CST 2015

Currently, force unwraping .None/nil optional results in a runtime error. I
suggest to put operator/method which will allow the optional unwrap to
result in exception. For example:

enum OptionalError: ErrorType {
    case NoValue(String)

extension Optional {
    func unwrap(@autoclosure reason: () -> String = "No value found")
throws -> Wrapped {
        if let val = self {
            return val
        } else {
            throw OptionalError.NoValue(reason())

Alternatively we could put a postfix operator like !!.

Best Regards,
Nikolay Petrov
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20151204/befa5b67/attachment.html>

More information about the swift-evolution mailing list