广告
返回顶部
首页 > 资讯 > 精选 >swift错误处理do catch try try!使用的方法是什么
  • 345
分享到

swift错误处理do catch try try!使用的方法是什么

2023-07-05 12:07:38 345人浏览 泡泡鱼
摘要

这篇“swift错误处理do catch try try!使用的方法是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获

这篇“swift错误处理do catch try try!使用的方法是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“swift错误处理do catch try try!使用的方法是什么”文章吧。

在swift中 如果我们要定义一个表示错误类型非常简单,只要遵循Error协议就可以了,我们通常用枚举或者结构体来表示错误类型,枚举可能用的多些,因为他能更直观的表达当前错误类型的每种错误细节。

////  AboutError.swift//  learn_swiftUi////  Created by liuan on 2020/9/4.//  Copyright © 2020 liuan. All rights reserved.//import Foundationenum VendingMachingError:Error{    case invalideSelection    case insufficientFunds(coinsNeeded:Int)    case outOfStock}

函数、方法和初始化器都可以抛出错误。需要在参数列表后面,返回值加throws 关键字。

简化版

func canThrowErrors() throws -> String
////  AboutError.swift//  learn_swiftUi////  Created by liuan on 2020/9/4.//  Copyright © 2020 liuan. All rights reserved.//import Foundationenum VendingMachingError:Error{    case invalideSelection    case insufficientFunds(coinsNeeded:Int)    case outOfStock}struct Item {    var price: Int    var count: Int}class VendingMathine{    var inventory=[        "Candy bar":Item(price: 12, count: 7),        "Chips":Item(price: 10, count: 4),        "Pretzels":Item(price: 7, count: 11),    ]        var coinsDeposited = 0    func vend(itemNaamed name:String) throws{        guard let item = inventory[name] else{            throw VendingMachingError.invalideSelection        }                guard item.count > 0 else{            throw VendingMachingError.outOfStock        }        guard item.price <= coinsDeposited else{            throw VendingMachingError.insufficientFunds(coinsNeeded: item.price - coinsDeposited)             }                coinsDeposited -= item.price        var newItem = item        newItem.count -= 1        inventory[name]=newItem        print("Dispensing \(name)")            }}let vm=VendingMathine()vm.coinsDeposited=2try vm.vend(itemNaamed: "Pretzels")

抛出异常

Playground execution terminated: An error was thrown and was not caught:▿ VendingMachingError  ▿ insufficientFunds : 1 element    - coinsNeeded : 5

在Swift中我们使用do-catch块对错误进行捕获,当我们在调用一个throws声名的函数或方法时,我们必须把调用语句放在do语句块中,同时do语句块后面紧接着使用catch语句块

swift错误处理do catch try try!使用的方法是什么

do里面执行调用语句

后面跟着catch 第一种错误 在第一种错误里面做处理

第二种错误需要符合一定的条件

然后做错误处理

第三种是没有捕获到的错误 然后在第三个语句里面做处理

swift错误处理do catch try try!使用的方法是什么

如果你确信一个函数或者方法不会抛出错误,可以使用try! 来中断错误的传播,但是如果错误真的发生了。你会得到一个运行时错误

////  AboutError.swift//  learn_swiftUi////  Created by liuan on 2020/9/4.//  Copyright © 2020 liuan. All rights reserved.//import Foundationlet photo = try! 5/0
warning: BlackMyPlayground.playground:10:19: warning: no calls to throwing functions occur within 'try' expressionlet photo = try! 5/0                  ^warning: BlackMyPlayground.playground:10:19: warning: no calls to throwing functions occur within 'try' expressionlet photo = try! 5/0                  ^error: BlackMyPlayground.playground:10:19: error: division by zerolet photo = try! 5/0                  ^

defer关键字:defer block 例的代码会在函数return之前执行,无论函数是从哪个分之return的,还有throw,还是自然而然走到最后一样。

////  File.swift//  learn_swiftUi////  Created by liuan on 2020/9/4.//  Copyright © 2020 liuan. All rights reserved.//import Foundationfunc processFile(fileName: String)throws{    defer{        print("JIESHU")    }   print("KaiSHI ") }

以上就是关于“swift错误处理do catch try try!使用的方法是什么”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网精选频道。

--结束END--

本文标题: swift错误处理do catch try try!使用的方法是什么

本文链接: https://www.lsjlt.com/news/351772.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • swift错误处理do catch try try!使用的方法是什么
    这篇“swift错误处理do catch try try!使用的方法是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获...
    99+
    2023-07-05
  • Rust处理错误的方法是什么
    这篇文章主要介绍“Rust处理错误的方法是什么”,在日常操作中,相信很多人在Rust处理错误的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Rust处理错误的方法是什么”的疑惑有所帮助!接下来,请跟...
    99+
    2023-07-05
  • GoFrame错误处理常用方法是什么
    这篇“GoFrame错误处理常用方法是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“GoFrame错误处理常用方法是什么...
    99+
    2023-07-02
  • access数据库错误处理的方法是什么
    在Access数据库中,可以使用以下方法处理错误:1. 使用On Error语句:在代码中使用On Error语句,可以捕捉并处理运...
    99+
    2023-09-21
    access数据库
  • mysql相关的错误问题处理方法是什么
    这篇文章主要讲解了“mysql相关的错误问题处理方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“mysql相关的错误问题处理方法是什么”吧! ...
    99+
    2022-10-19
  • php 404错误的常见原因和处理方法是什么
    这篇文章主要介绍了php 404错误的常见原因和处理方法是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇php 404错误的常见原因和处理方法是什么文章都会有所收获,下面我们一起来看看吧。一、常见原因文件或...
    99+
    2023-07-05
  • go语言规范RESTful API业务错误处理的方法是什么
    这篇“go语言规范RESTful API业务错误处理的方法是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“go...
    99+
    2023-07-05
  • flask响应错误的处理及errorhandler的应用方式是什么
    本篇内容介绍了“flask响应错误的处理及errorhandler的应用方式是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!flask响...
    99+
    2023-07-04
  • 数据库中RMAN删除归档日志出现RMAN-0813错误的处理方法是什么
    这篇文章主要讲解了“数据库中RMAN删除归档日志出现RMAN-0813错误的处理方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“数据库中RMAN删除...
    99+
    2022-10-18
  • React Hook Form优雅处理表单使用的方法是什么
    这篇“React Hook Form优雅处理表单使用的方法是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看...
    99+
    2023-07-05
  • Python中使用Numpy优化文件处理的方法是什么?
    文件处理是编程中常见的任务之一,而Python中的Numpy库提供了一些优化文件处理的方法。本文将介绍如何使用Numpy库来优化文件处理,并通过演示代码来说明其实现方法。 一、Numpy库简介 Numpy是Python中一个重要的科学计算...
    99+
    2023-06-01
    numpy django 文件
  • Linux系统文本处理工具less的使用方法是什么
    这篇文章主要为大家分析了Linux系统文本处理工具less的使用方法是什么的相关知识点,内容详细易懂,操作细节合理,具有一定参考价值。如果感兴趣的话,不妨跟着跟随小编一起来看看,下面跟着小编一起深入学习“Linux系统文本处理工具less的...
    99+
    2023-06-28
  • Java 和 Unix 中使用 Numpy 处理数组的最佳方法是什么?
    在计算机科学领域中,数组是一种常见的数据结构。在 Java 和 Unix 系统中,处理数组是非常普遍的。而 Numpy 是一种强大的 Python 库,可以用于高效地处理数组。在本文中,我们将探讨如何使用 Numpy 在 Java 和 U...
    99+
    2023-10-06
    unix 数组 numpy
  • Babylon使用麦克风并处理常见问题的方法是什么
    本文小编为大家详细介绍“Babylon使用麦克风并处理常见问题的方法是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“Babylon使用麦克风并处理常见问题的方法是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知...
    99+
    2023-07-05
  • 自然语言处理的学习笔记:ASP和JavaScript的使用方法是什么?
    自然语言处理(Natural Language Processing,NLP)是人工智能领域中一个重要的研究领域,它关注计算机系统如何理解、处理和生成人类语言。在NLP中,语言被看作是一种符号系统,计算机需要通过各种算法和技术来分析和处理...
    99+
    2023-07-06
    javascript 学习笔记 自然语言处理
  • 在bash中使用numpy优化二维码图像处理效率的方法是什么?
    二维码已经成为了现代社会不可或缺的一部分,我们可以在许多地方看到二维码的身影,比如商场、超市、地铁等等。在现代社会中,使用二维码进行信息传输已经成为了一种非常方便的方式。但是,二维码的生成和识别需要很高的处理效率,这一点尤其重要。在本文中...
    99+
    2023-09-24
    二维码 bash numpy
  • 在Linux系统下使用Java API实现自然语言处理的方法是什么?
    自然语言处理(NLP)是人工智能领域中的一个重要分支,它研究人类语言的本质和规律,以及如何使用计算机模拟和处理语言。在当今信息爆炸的时代,NLP技术正被广泛应用于机器翻译、语音识别、文本分类、情感分析等领域。本文将介绍如何在Linux系统...
    99+
    2023-09-08
    自然语言处理 linux api
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作