加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Swift 2.0 do-try-catch和常规Java / C#/ C异常之间有什么区别

发布时间:2020-12-14 05:30:44 所属栏目:百科 来源:网络整理
导读:似乎 Swift 2.0已经从传统的ObjC(NSError返回)和Swift 1.X(成功/失败选项)运行时错误处理的约定转变为看起来非常类似于Java / C#/ C /等语言中的异常处理的东西. Apple传统上有emphasized use of NSError instead of throwing NSException for runtime error
似乎 Swift 2.0已经从传统的ObjC(NSError返回)和Swift 1.X(成功/失败选项)运行时错误处理的约定转变为看起来非常类似于Java / C#/ C /等语言中的异常处理的东西.

Apple传统上有emphasized use of NSError instead of throwing NSException for runtime errors(与程序员错误相比),因为NSException堆栈展开可能会导致内存泄漏,默认的ObjC编译器设置.

然而,现在他们已经设计出一些与传统异常非常相似的东西.我的问题是:

除了命名法(错误与异常)和语法(do-catch,而不是try-catch,尝试在方法调用之前使用等)之外,Swift 2.0错误处理和传统异常处理之间是否存在任何真正的差异.

我发现有三个主要差异:

>没有必要列出函数可以抛出的所有错误,只需要throws关键字.>使用这些错误时没有明显的减速,而Java和其他语言需要构造一个Exception对象并展开堆栈.在Swift中,throws关键字可以被视为返回Either-object的函数,其中一个是原始返回类型,另一个是ErrorType值.>在Swift中,所有错误都需要处理或声明为抛出,不可能从一个没有声明它抛出错误的方法中获得错误. (在Java术语中,所有错误都是“已检查的异常”)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读