Swift异常处理
2024-08-30 09:45:21
在Swift里,抛出的异常必须继承Error这个协议。那么这个协议是什么呢?
按住command再点击Error我们可以看到,
public protocol Error {
}
extension Error {
}
显然这个协议是空的,之所以还会有个空扩展,就是官方为了强调这个协议的确是空的,
只是为了标记错误的。
然后下面是我自己的例子,非常简单
enum numTest:
Int,
Error {
case _0, _1, _2, _3
case nothing = 999
}
func errorTest(by num:
Int) throws
-> String {
switch num {
case 0:
throw
numTest._0
case 1:
throw
numTest._1
case 2:
throw
numTest._2
case 3:
throw
numTest._3
case 10:
throw
numTest.nothing
default:
return "OK"
+ "
\(num)"
}
}
for i in
0...10 {
do {
try
print(errorTest(by:
i))
}catch numTest._0
{
print("wrong
0")
}catch numTest._1
{
print("wrong
1")
}catch numTest._2
{
print("wrong
2")
}catch numTest._3
{
print("wrong
3")
}catch {
print("unknow")
}
}
最后运行结果
wrong 0
wrong 1
wrong 2
wrong 3
OK 4
OK 5
OK 6
OK 7
OK 8
OK 9
unknow
最新文章
- JS框架
- [No000089]String的(补空位)左对齐,(补空位)右对齐
- 如何配置Eclipse+Tomcat 开发环境【转】
- 用frame实现最基本的上中下三层布局,中间又分左右两部分.
- Android 自定义Spinner和其下拉窗口
- 批量将文件转换为UTF-8无BOM格式
- ASP.Net动态创建GridView
- (转)C#与C++之间类型的对应
- DBUS基础知识
- 【prufer编码+组合数学】BZOJ1005 [HNOI2008]明明的烦恼
- .net 操作excel
- Oracle 12c client with .NET legacy Oracle driver
- [BZOJ 2705] [SDOI 2012] Longge的问题
- Confluence 6 用户目录图例 - 使用 LDAP 授权,在用户第一次登陆时拷贝用户
- html网页如何使用哪种浏览器内核渲染的选择
- idea tomcat上传图片,无法显示的问题解决
- ES6 class的继承-学习笔记
- html5的拖拽dragAPI(如果看了API不懂,看看那三个案例就会恍然大悟)
- Django---简单接受表单信息
- selenium(三)浏览器操作
热门文章
- pppoe server 搭建
- HashSet、LinkHashSet、TreeSet总结
- mongoDB之监控工具mongotop
- (转)MongoDB在mongo控制台下的基本使用命令
- WPF popup控件的使用
- 【BZOJ2216】[Poi2011]Lightning Conductor 决策单调性
- mybatis学习总结(一)——简介
- flume-ng script should first try finding java from PATH and then try using bigtop, instead of vice-versa
- 什么是aop?-------转
- Mongoose学习(3)--设置环境变量