Tag: Swift错误处理

Swift中的错误处理…

Swift错误处理就是关于优雅地处理失败情况的一切。 良好的错误处理可增强最终用户和开发人员的体验。 这对于轻松识别错误/问题及其原因非常有用。 此外,如果最终用户在使用您的应用程序时发生任何系统故障,它还可以让最终用户以适当的方式了解有关故障/问题的信息。 可恢复与不可恢复的错误: 可恢复的错误是可能会暂时停止正常程序执行的错误,但是程序应该能够正常恢复并继续执行而不会丢失任何重要功能。 不可恢复的错误是程序无法从中恢复并且必须关闭的错误。 这些可能是由于程序逻辑中的错误或其他意外情况(例如资源不可用)导致的,否则,程序将无法以有意义的方式执行。 运行时可能会发生错误,并且可能会更改程序的流程。 我们在软件开发中遇到各种错误。 例如: 逻辑错误 类型转换错误 外部错误,例如FileNotFound等。 我们项目中的错误处理越具体,维护起来就越容易诊断问题。 “ Swift为投掷,捕捉,传播和操纵提供一流的支持 运行时可恢复的错误。” – Swift编程语言(Swift 3) 在过去,对不起,在古代,开发人员通常通过编写嵌套的if-else语句来处理错误,以捕获错误并加以处理。 这种方法导致带有很多嵌套条件的胖代码文件,而且,不仅如此,在使用那些可能导致错误的函数时,它并不表示会导致错误,除非我们记得或以类似的方式命名该函数。例如: func retrievingFileFromServerCanThrowAnError(fileName:String){} 快速错误协议: 错误协议只是一种表示可以抛出的错误值的类型。 在Swift中,所有可能引发错误的对象,类,结构,枚举都必须通过错误协议进行确认。 如果不是,编译器将无法理解,因此会引发警告和错误。 因此,我们可以使用任何类型的错误来表示错误,这些错误可以向错误协议确认。 通常,我们通过与Error协议进行确认来使用枚举 。 扔…? 扔……? 与其他许多现代编程语言一样,在Swift中,我们使用“ throws ”标记可能引发错误的函数。 这样,无论在何处调用该函数,编译器/ SDK都会告诉我们该函数可能导致错误,因此也要处理这些异常。 这样,我们可以增强可用性和项目可维护性。 “ throw ”仅用于在函数内部引发错误,该错误可能引发错误。 我们可以将此“ throw”与“ return”进行比较,因为当您抛出函数时,函数将返回。 我们在参数的末尾放置“ throws”关键字,以将该功能标记为可抛出。 例如: func selfDriving(车辆:Vehivle)引发 func GiveSpecificationsOf((车辆车辆:车辆)引发->规格 我们可以处理这类功能,这些功能可能会在许多方面导致错误。 在下面我们将看到它们,我们可以迅速执行此操作,以避免嵌套条件,函数中的代码code肿。 […]