zoukankan      html  css  js  c++  java
  • swift的异常处理:本质是错误信息的传递方式

        func response(from resultObject: Any) throws -> Response {

            guard

                let dict = resultObject as? [String: AnyObject],

                let transaction = PendingTransaction.from(dict)

            else {

                throw CastError(actualValue: resultObject, expectedType: Response.self)

            }

            return transaction

        }

       

     func convertPrivateKeyToKeystoreFile(privateKey: String, passphrase: String) -> Result<[String: Any], KeystoreError> {

            guard let data = Data(hexString: privateKey) else {

                return .failure(KeystoreError.failedToImportPrivateKey)

            }

            do {

                let key = try KeystoreKey(password: passphrase, key: data)

                let data = try JSONEncoder().encode(key)

                let dict = try JSONSerialization.jsonObject(with: data, options: []) as! [String: Any]

                return .success(dict)

            } catch {

                return .failure(KeystoreError.failedToImportPrivateKey)

            }

        }

        var asDictionary: [String: Any]? {

            if let data = self.data(using: .utf8) {

                do {

                    return try JSONSerialization.jsonObject(with: data, options: []) as? [String: Any]

                } catch {

                    print(error.localizedDescription)

                    return [:]

                }

            }

            return [:]

        }

  • 相关阅读:
    《软件开发这点事儿》作者在MSDN上与您讨论软件开发
    JavaScript的对象观
    Windows操作系统发展简史
    UCenter Home 1.5的基本配置与技巧
    设计模式模版方法(TemplateMethod)
    设计模式访问者模式(Visitor)
    设计模式状态模式(State)
    Ext终于开始收费了
    设计模式观察者模式(Observer)
    设计模式备忘录模式(Memento)
  • 原文地址:https://www.cnblogs.com/feng9exe/p/10430086.html
Copyright © 2011-2022 走看看