我会争辩说,为什么它被称为错误处理与调用堆栈无关。基于这两个词的定义,调用堆栈是无关紧要的。我相信,你已包括在你的问题中引用的目的仅仅是提供错误处理的斯威夫特和异常处理其他语言,无论在名称的差异之间的区别。
为了鉴定非SWIFT语言方面的区别,一个共同的描述是,它不处理异常错误。因此,一个错误和一个例外是两个独特的实体。
现在斯威夫特,似乎他们试图获得完全赞成刚才使用术语错误去掉单词“异常”的。因此可以处理错误,如果没有,程序崩溃。这很可能是因为调用实际崩溃并不重要,更重要的是造成它的原因,在这种情况下是“错误”。根据iOS世界中的使用情况,我几乎没有这方面的经验,但我认为尽管称它为“异常处理”在技术上并不正确,但大多数Swift程序员会知道你在说什么,可能不会纠正你(甚至不认为纠正你)。
总的来说,我认为它主要是一种文字游戏,而不是什么构成一个“错误”,什么构成了一个“例外”。
编辑
我要澄清我的意思是错误和异常的iOS /斯威夫特内的差别不只是语义。例外是非法事件发生时会抛出的异常,并且可以创建错误以允许您防止显示这些消息/您的程序崩溃。在这方面他们是完全不同的东西。
我的观点是不同的编码语言中的术语“错误”(斯威夫特)和“异常”(在Java中为例)基本相同,只是名称不同。
例如,我可以尝试处理一个名为“ArrayError”的错误(我知道这个愚蠢的名字,它只是一个例子),在Java中我可能会试图捕获IndexOutOfBoundsException。这两个对象都被抛出并被捕获,因此我正在比较两者之间的区别,突出了Swift与其他语言中命名约定的区别。
但是不,错误和异常在技术上并不是一回事,即使在Swift中也是如此。
问题是基于意见的。而且swift开发人员可以将它称为'错误处理'而不是'异常处理',因为他们调用'protocol'的原因与其他语言中称为'interface'的原因相同。只是因为他们可以和他们想要这样命名。 – user28434
我的问题是关于编程语言Swift中“exception”这个术语的严格意义。我同意本杰明洛瑞的声明,大多数Swift程序员会以非正式的方式接受'异常'这个词。我认为在Swift中调用'protocol * interface *是严格意义上的错误。 – user1364368
有严格的意思吗?正如'Java','C#','C++'和其他一些被称为'interface'的语言中'Swift'中所称的'protocol'。那么为什么它在严格意义上是错误的? – user28434