小错误处理简介

我们在编写代码时都已经看到错误和警告,它们肯定会很痛苦,但要感谢它们在那里。 如果不存在,我们的应用程序将在用户面前崩溃,并且该应用程序肯定会在应用程序商店中获得不良评价。 没有人想要!

成为一名优秀的开发人员意味着您不仅可以编写代码,而且可以编写正确的无错误代码。 即使不是不可能,编写完全没有错误的代码也是非常困难的,但是我们可以采取步骤确保我们的代码包含尽可能少的错误。 此过程称为错误处理。

那么什么是错误? 错误是任何会产生不正确或意外结果或导致程序无人照管的行为的代码。

有两种不同类型的错误。 编译器错误和运行时错误。

编译器错误是快速编译器在解析或读取代码时引发的错误。 编译器错误也可以分解为域错误,但并非总是如此。 有些错误是编译器无法捕获的,只有在您击中特定代码行时才会发生。 这些是运行时错误。

运行时错误可以分解为两个。 第一个是可恢复的错误,第二个是不可恢复的错误。 根据是哪个错误,我们可以对如何处理错误做出不同的反应。 不可恢复的错误可能是由程序员错误引起的逻辑错误,也可能是我们无法预料到发生的普遍错误。 因为这两种情况都无法防范,我们通常会在这些情况下崩溃并以不同的方式处理它们。 我们将重点放在可以恢复的运行时错误上。

错误处理到底是什么? 苹果必须说的是: 错误处理是响应程序错误状态并从错误状态中恢复的过程。

从Apple文档中可以找到四种处理错误的方法。

  1. 您可以断言该错误不会发生。
  2. 您可以将错误作为可选处理。
  3. 或者,您可以使用throw在函数中传播错误。
  4. 您可以使用do-catch语句。

我们已经看到了其中的一些,但我将深入探讨最后两个。

首先,我们可以通过采用错误协议来对错误建模。 错误协议是一个空协议,但是它指示可以将类型用于错误处理。 枚举通常用于对我们的错误可能进行建模,因为我们可以在枚举中使用关联的值,这使我们更具描述性

现在,我们对错误进行了建模,可以编写函数了。 为了表明该函数可能引发错误,我们在函数本身中使用了关键字throws。

如您所见,throws关键字添加在function /方法参数之后和返回类型之前。 如果没有返回类型,则可以使用关键字throws。

现在在函数内部,我们必须使用关键字throw。 throw关键字是控制转移语句,它退出当前作用域,并且必须始终接受一个参数。

既然我们已经完成了该函数的编写,我们可以调用它,但是由于它是一个抛出函数,因此需要尝试实现。 我们在这里使用do – catch语句。 如果do子句中的代码引发错误,则将其与catch子句进行匹配,以确定其中哪一个可以处理该错误。 Do子句实质上会创建所谓的幸福之路,以确保一切成功。

这是错误处理的非常简短的介绍。 那里有很多不错的文章,但会更深入,但是我建议使用Apple文档。 编码愉快!