当前位置: 首页 > 面试题库 >

在Swift 2中捕获“ IndexOutOfBoundsException”

李弘光
2023-03-14
问题内容

我在游乐场中获得了以下代码:

func throwsError() throws{
    var x = [1,2]
    print(x[3])
}

func start(){

    do{
        try throwsError()

    }
    catch let unknown{
        "unknown: \(unknown)"
    }
}

start()

因此很明显,该'throwsError函数会引发错误:

执行被中断,原因:EXC_BAD_INSTRUCTION

有没有办法抓住这个?我在线阅读文章,为Array类编写一个下标,该下标始终检查范围,但问题更大:我无法捕捉任何东西吗?


问题答案:

在Swift中,您catch什么都做不到。您只能赶上 错误 与抛出throw由被称为目标C代码的其他银行代码或错误,类型NSError一套说法。

默认的数组下标引发一个 exception ,但不会throw产生Swift 错误 ,因此您不能对其使用try / catch。

另请参阅Erica Sadun的这篇文章。



 类似资料:
  • 问题内容: 我们有一个大型的golang应用程序,它使用记录器(实际上是自定义记录器)将输出写入定期轮换的日志文件中。 但是,当应用程序崩溃或出现panic()时,这些消息将变为标准错误。 有什么方法可以覆盖使用记录仪的紧急功能? 问题答案: 据我所知,您无法将恐慌的输出重定向到标准错误或记录器。最好的办法是将标准错误重定向到可以在外部或在程序内部执行的文件。 对于我的rclone程序,我重定向了

  • 我想寻求帮助,了解如何在JUnit测试中捕获IOException,以测试我的代码在发生错误时是否会抛出正确的异常。 以下是我的主要代码: 这是我的JUnit: 我想我必须在JUnit测试中创建一个错误的路径来抛出该异常,但我没能得到我想要的结果。我很感谢你的帮助。谢谢

  • 问题内容: 我使用jQuery向服务器发出AJAX POST请求,该请求可以返回状态为302的HTTP响应。然后JavaScript只是将GET请求发送到此URL,而我想在此响应中将用户重定向到URL。这可能吗? 问题答案: 由于给出的原因,接受的答案不起作用。我发表了评论,并提供了一个指向问题的链接,该问题描述了一种黑客程序 但是,这有点肮脏,在深入研究之后,我发现我认为是更好的解决方案- 使用

  • 我有一个存储过程似乎没有正确记录错误。 代码有错误,但 catch 块似乎未生效。 try块相当长,但错误部分很简单,并且在最后出现,所以我已经对此进行了预测。 proc失败的错误是我们的老朋友“列名或提供的值的数量与表定义不匹配”。我已经修复了这个错误 - 这是一个愚蠢的懒惰错误 - 但我感到困惑为什么我的错误日志记录过程似乎没有工作 - 没有行入到我的 ExtractsErrorLog 表中。

  • 本文向大家介绍React中在哪捕获错误?相关面试题,主要包含被问及React中在哪捕获错误?时的应答技巧和注意事项,需要的朋友参考一下 在react 15 极其以前的版本中,组件内的UI异常将中断组件内部状态,导致下一次渲染时触发隐藏异常。React并未提供友好的异常捕获和处理方式,一旦发生异常,应用将不能很好的运行。而React 16版本有所改进。 组件内异常,也就是异常边界组件能够捕获的异常,

  • 问题内容: 我正在研究启动多个进程和数据库连接的python脚本。我不时地想用信号杀死脚本,我想进行一些清理。 在Perl中,我可以这样做: 如何在Python中做类似的事情? 问题答案: 用以下方式注册你的处理程序: 代码改编自此处。