try? try! try do catch try 使用详解
当一个使用一个方法发现后面 throws 说明可能会抛出异常 需要try 进行处理

1 try? 如果解析成功就有值 否则返回nil (推荐)
2 try! 如果解析成功就有值 否则直接崩溃 (不推荐)
3 try 如果 如果解析成功就有值 如果出错 能够处理异常 输出错误 do try catch
4 oc 中 ARC 开发自动添加 release autorelease retain 如果用try catch 一旦不平衡就会出现内存泄漏
let jsonStr = "{\"name\":.\"上官\"}"
let data = jsonStr.data(using: .utf8)
// try? 如果解析成功就有值 否则返回nil (推荐)
let json = try? JSONSerialization.jsonObject(with: data!, options: [])
// try! 如果解析成功就有值 否则直接崩溃 (不推荐)
let json0 = try! JSONSerialization.jsonObject(with: data!, options: [])
//
// // try 如果 如果解析成功就有值 如果出错 能够处理异常 输出错误 do try catch
//
do {
let json1 = try JSONSerialization.jsonObject(with: data!, options: [])
print( json1 )
} catch {
print(error)
}
// print( json )
try? try! try do catch try 使用详解的更多相关文章
- try、catch、finally详解,你不知道的异常处理
介绍 不管是新手还是工作几年的老油条,对try{}catch{}来说是不陌生的.他可以来帮助我们获取异常信息,在try中的代码出现错误,火灾catch代码块中被捕获到.官方也给了详细的解释:. 抛出异 ...
- Promise.then(a, b)与Promise.then(a).catch(b)问题详解
原文: When is .then(success, fail) considered an antipattern for promises? 问题 我在bluebrid promise FAQ上面 ...
- 异常处理(try catch throw)详解(C++)
选择异常处理的编程方法的具体原因如下: 1.把错误处理和真正的工作分开来: 2.代码更易组织,更清晰,复杂的工作任务更容易实现: 3.毫无疑问,更安全了,不至于由于一些小的疏忽而使程序意外崩溃了: 4 ...
- 【Java学习笔记之三十三】详解Java中try,catch,finally的用法及分析
这一篇我们将会介绍java中try,catch,finally的用法 以下先给出try,catch用法: try { //需要被检测的异常代码 } catch(Exception e) { //异常处 ...
- “全栈2019”Java异常第四章:catch代码块作用域详解
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java异 ...
- EntityFramework Core 1.1 Add、Attach、Update、Remove方法如何高效使用详解
前言 我比较喜欢安静,大概和我喜欢研究和琢磨技术原因相关吧,刚好到了元旦节,这几天可以好好学习下EF Core,同时在项目当中用到EF Core,借此机会给予比较深入的理解,这里我们只讲解和EF 6. ...
- C#进阶系列——WebApi 接口返回值不困惑:返回值类型详解
前言:已经有一个月没写点什么了,感觉心里空落落的.今天再来篇干货,想要学习Webapi的园友们速速动起来,跟着博主一起来学习吧.之前分享过一篇 C#进阶系列——WebApi接口传参不再困惑:传参详解 ...
- Android PopupWindow Dialog 关于 is your activity running 崩溃详解
Android PopupWindow Dialog 关于 is your activity running 崩溃详解 [TOC] 起因 对于 PopupWindow Dialog 需要 Activi ...
- Quartz.net开源作业调度框架使用详解
前言 quartz.net作业调度框架是伟大组织OpenSymphony开发的quartz scheduler项目的.net延伸移植版本.支持 cron-like表达式,集群,数据库.功能性能强大更不 ...
随机推荐
- 第20月第18天 小码哥swift
1. 9月12日第一次更新 第二篇玩转[斗鱼直播APP]系列之界面分析 第三篇玩转[斗鱼直播APP]系列之项目部署 第四篇玩转[斗鱼直播APP]系列之获取APP图片资源 第五篇玩转[斗鱼直播APP]系 ...
- python前后端加密方式
后端加密方法: python后端加密方式: # 双重工加密 #bytes((7788).encode('utf-8')):为后端加密二把手,多加的锁,该参数可为空,必须加bytes才能实现 md5pa ...
- LOJ #2542「PKUWC2018」随机游走
$ Min$-$Max$容斥真好用 $ PKUWC$滚粗后这题一直在$ todolist$里 今天才补掉..还要更加努力啊.. LOJ #2542 题意:给一棵不超过$ 18$个节点的树,$ 5000 ...
- linux 查看文件夹大小
参考链接: http://www.cnblogs.com/iconfig/p/4863063.html
- linux把文件压缩成.tar.gz的命令
https://blog.csdn.net/qq_27803491/article/details/52785838
- SpringBoot--配置详解
SpringBoot使用了一个全局的配置文件application.properties,放在src/mian/resource目录下或者类路径的/config下.springboot的全局配置文件的 ...
- 码云IntelliJ IDEA
将项目从码云clone到IntelliJ IDEA https://blog.csdn.net/wust_lh/article/details/68068176 用IDEA上传本地项目到码云/Gith ...
- xadmin插件开发
参考:http://blog.csdn.net/qq_15682489/article/details/70174784 项目中新添加的organization模块需要在toolbar中添加“课表详细 ...
- 动态规划 - 198. House Robber
URL : https://leetcode.com/problems/house-robber/ You are a professional robber planning to rob hous ...
- Faster_RCNN 2.模型准备(上)
总结自论文:Faster_RCNN,与Pytorch代码: 本文主要介绍代码第二部分:model/utils , 首先分析一些主要理论操作,然后在代码分析里详细介绍其具体实现. 一. 主要操作 1. ...