String(contentsOf url:URL) 可能会抛出什么类型的异常?

2023-12-06

我正处于重构原型以使其更加灵活的阶段。这意味着我想添加错误处理。我的应用程序非常依赖 String(contentsOf:url) ,与处理文件的任何操作一样,它很容易出错。然而,相关 init 方法的签名只是这样写:

init(contentsOf url: URL) throws

所以我知道它会抛出......但是它具体抛出了什么?当我不知道可能会遇到什么错误时,我不确定我是否理解如何处理错误。这文档也没说什么。我被难住了?


init(contentsOf:)来自基金会的NSStringAPI — 因此,像所有 Foundation API 一样,它会抛出一个NSError其中描述了错误。您可以像捕获其他错误一样捕获它:

do {
    let str = String(contentsOf: theLocalURL)
    // ...
} catch {
    // Present `error.localizedDescription` to the user to let them know what went wrong
}

由于错误是NSError,你也可以抓住它来检查它code/userInfo:

do {
    // Same as above
} catch let error as NSError {
    // Inspect what went wrong.
}

至于您可能期望哪些特定代码,请查看以NSFile... 在里面NSError Codes list。常见的代码可能是NSFileReadNoPermissionError or NSFileReadNoSuchFileError如果文件不存在等。

不过,一般来说,您应该显示localizedDescription向您的用户报告错误并中止操作或重试。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

String(contentsOf url:URL) 可能会抛出什么类型的异常? 的相关文章

随机推荐

  • 带有文本的纹理,看起来像素化,如何在 unity3d 中解决这个问题?

    我使用 1024x1024 纹理 它映射到 Unity3d 中的四边形 目前的目标平台是 PC 独立平台 它看起来是这样的 您可以看到屏幕中的对象有多么像素化和模糊 如何才能使其更具可读性并减少像素化 导入设置 质量设置和关闭 mip ma
  • 读取/写入 Excel 2007 受密码保护的文档

    Office 2007 使用什么方法进行加密 当从 Office 菜单中选择 加密 并设置密码时 我的 C 应用程序需要创建和读取加密的 Excel 2007 文件 xlsx 重要的是这些文件仍然可以从 Excel 访问 因此我必须使用 M
  • 更改 BlobBuilder 中的文件名以作为 XHR 上的 FormData 传递

    我目前正在尝试将 ArrayBuffer 上传到服务器 我无法更改 该服务器需要我以多部分 表单数据格式上传的文件 服务器从Content Disposition部分的filename将被保存并在Content type提供文件时将使用的
  • 当计算使用后台线程时,如何正确声明计算属性?

    我试图声明一个由块组成的计算属性 在后台线程中执行 因此 当我处理这个属性时 它是零 因为计算在未准备好时返回结果 如何更好地纠正这个问题 谢谢你 enum Result
  • NestJS CLI 输出垃圾

    我已经使用过 NestJS 相当多了 而且它也是 CLI 但是当我现在想使用它时 它开始输出垃圾 我尝试的每个命令 nest nest info nest new npm run start dev This started happeni
  • 如何防止 app.config 集成到 .net 库 (dll) 中

    当我编译库时 Settings Settings 中的所有设置都集成到 DLL 中 我该如何防止这种情况 查看Settings settings文件的属性 并将 构建操作 设置为 资源 将 复制到输出目录 设置为 不复制 这应该会创建一个
  • Symfony 6无法使用mailer发送电子邮件(未配置数据库)

    大家好 我刚刚开始使用 Symfony6 构建网络 我尝试使用邮件程序发送电子邮件 但它以某种方式需要配置数据库 为消息创建一些特殊表 也许有一些解决方法 因此它可以在没有数据库的情况下工作 在 Symfony 5 中没有问题 如果在 co
  • 检查 Python While 循环中的值是否仍然保持不变

    我想知道是否有一种优雅的方法来查看是否可以检查在 while 循环中不断变化的值 并在该值停止变化并保持不变时停止 while 循环 例如 Value 0 while True value changes everytime if valu
  • 借助 PHP 和 HTML 动态创建行和列

    我想在 PHP 和 HTML 的帮助下创建动态行和列 但我对这段代码有点困惑 因此非常感谢一些帮助 table table 场景很简单 Mysql 数据从 for each 循环返回 6 条记录 结果将如下图所示 同样的方式 Mysql 数
  • 在 array.xml 中添加超链接文本

    我正在使用 array xml 创建列表并将其填充到 listView 中 问题是我需要在 arrayItem 描述中添加一个超链接文本 这样当我将其填充到 listView 中时 它应该链接到我的网站
  • 我是否需要 Content-Type: application/octet-stream 来下载文件?

    The HTTP标准 says 如果在响应中使用此标头 Content Disposition Attachment 对于 application octet stream 内容类型 隐含的 建议用户代理不应显示响应 但是 直接进入 将响应
  • java泛型,如何从两个类扩展?

    我想要一个 Class 对象 但我想强制它所代表的任何类扩展 A 类和 B 类 我可以
  • 如何在 C# 中获取对象的小写名称(即使为 null)[重复]

    这个问题在这里已经有答案了 我有C 方法 private static string TypeNameLower object o return o GetType Name ToLower 给我输入对象的小写类型名称 但是 如果输入是设置
  • C# WCF - 客户端/服务器 - System.OutOfMemory 异常

    问题 使用 Net TCP 绑定 发布者 订阅者模式 的 C WCF 客户端 服务器应用程序 客户端不断崩溃OutOfMemoryException 当我与客户端一起运行任务管理器时 我可以看到 内存使用情况 列不断增加 直到应用程序崩溃
  • java.net.Socket TCP keep-alive 用法

    如何使用java net Socket setKeepAlive boolean b API 我正在使用一个简单的服务器托管Socket 客户端可以连接并发送数据 除非客户端发送流结束 否则我不会关闭连接 客户端可以继续保持连接任意时间 数
  • 如何为EBS和RDS创建VPC?

    我制作了一个 Django 应用程序并将其部署在Elastic Beanstalk 我做了一个 Postgres DBRDS以及 我想将这两个添加到VPC 我创建了VPC使用专有网络向导 具有公共和私有子网的 VPC 顾名思义 它创建了1
  • 使用 Javascript 单击时显示 1 个 div 并隐藏所有其他 div

    我正在我的网站上设置一个 个人简介 部分 我有 3 张员工图片和 3 个 div 每个员工的个人简介如下 我想默认隐藏所有BIOS 然后仅显示与单击的图像关联的div 并隐藏所有其他div 目前看来它没有找到元素 因为我得到 未定义 这是到
  • XPath获取最大ID

    XML 来源
  • CSS 防止 div flex 拉伸子元素

    div 的时刻flexdisplay 属性会拉伸段落 我似乎遗漏了一些东西 但我认为放在 Flex div 上的任何属性都不会改变这一点 我怎样才能防止这种行为 没有 flex 属性 我得到图像右侧的结果 div display flex
  • String(contentsOf url:URL) 可能会抛出什么类型的异常?

    我正处于重构原型以使其更加灵活的阶段 这意味着我想添加错误处理 我的应用程序非常依赖 String contentsOf url 与处理文件的任何操作一样 它很容易出错 然而 相关 init 方法的签名只是这样写 init contents