当前位置: 首页 > 知识库问答 >
问题:

尝试-捕获异常在快速[重复]

方兴旺
2023-03-14

有可能在SWIFT中捕捉异常吗?给定以下代码

NSException.raise(NSRangeException,
    format: "Now you've gone too far!",
    arguments: CVaListPointer(fromUnsafePointer: UnsafePointer()))

有可能防止异常使整个程序崩溃吗?也就是说,在Objective-C中,与以下内容相对应的Swift等价是什么:

@try {
    [NSException raise:NSRangeException format:@"Now you've gone too far!"];
}

共有1个答案

裴威
2023-03-14

它没有异常处理,开发者论坛中的讨论讨论了为什么会这样:

但请记住,可可和可可触摸传统上并不打算让你抓住例外;他们一开始就打算让你不要让他们被扔。普通错误应该用可选类型和inout NSError参数来处理;您应该通过编写更好的代码来解决导致断言失败的任何情况(这似乎是Swift中唯一的异常引发机制)。

 类似资料:
  • 前几天,我在我们的一个项目中看到一些代码,它们使用try-catch并重新抛出捕获的异常,如下所示: 除了catch块中的异常之外,没有做任何其他操作,所以我甚至不确定它为什么会被抛出。我看不出再次抛出同一个异常并对该异常不做任何处理有什么好处。 如果重新抛出catch块中捕获的异常,C#如何处理?它是否陷入了无限抛接球循环?还是说它最终会放弃试一试?

  • 我有以下代码。 然而,它没有捕捉到所有的错误,我仍然得到“throw er//未处理的“错误”事件。 这是为什么呢? 例如,直到我添加了一个特定的错误处理程序,它才捕获parse()函数中的错误。即使不添加,我的try/catch是否应该捕获此错误? 提前致谢!

  • 我希望程序在捕获异常时重新执行 while 循环 - 异常正在接收文本输入。相反,它继续使用下面的代码进行一段时间循环,我希望它再次要求用户输入。 输出:

  • 问题内容: 最近,我遇到了一位程序员的代码,其中他在catch中有一条try-catch语句! 请原谅我无法粘贴实际代码,但是他所做的与以下内容类似: 我个人认为这是我见过的最差的代码!以1到10的比例,您认为我应该多久才能动一下脑子,还是我反应过度? 编辑:他实际上在抓捕中所做的事情,他正在执行一些操作,这些操作在初始尝试失败时可以/应该执行。我的问题是拥有干净的代码和可维护性。将异常从第一个c

  • 问题内容: 我正在尝试这是一个计算器的代码。如何处理来自用户的无效输入? // ANSWER:将标头桥接到Objective-C // https://github.com/kongtomorrow/TryCatchFinally- Swift 这是相同的问题,但在objc中,但我想迅速进行 我只想显示一条消息,如果它不起作用,但是现在当用户输入的格式不正确时,我将收到一个异常消息。 问题答案: