【问题标题】:Catching errors thrown by use of ! in swift [duplicate]捕获使用 ! 引发的错误迅速[重复]
【发布时间】:2021-03-01 15:01:22
【问题描述】:

我有一些快速代码

Int i = Int( text )!

! 存在是因为代码行可能会失败。我想捕捉代码行失败但程序没有崩溃的情况。

我尝试使用do-try/catch

do
{
    try i = Int( text )!
}
catch{
    print( "text wasn't an int" )
}

但我得到 swift 编译器警告“'catch' 块无法访问,因为 do 块中没有引发错误”

如何在代码中捕获! 抛出的错误?

【问题讨论】:

标签: swift syntax try-catch


【解决方案1】:

这不是try-catch 情况,这是有条件的。您通常可以通过两种方式处理条件。

  1. Guard

如果它不起作用,大多数人根本不需要做任何事情 - 所以我们抛出一个守卫,然后简单地返回函数,如果它是 nil

guard let i = Int(text) else { return }
  1. if let

在其他情况下,我们可以if let x = ... 确定我们是否可以执行该操作,否则,else

if let i = Int(text) {
    print(i)
}
else {
    print("Could not convert")
}

【讨论】:

  • 嗯,还有第三种处理可选项的方法,即使用 nil 合并运算符 Int(text) ?? .zero 定义默认值
  • 是的。我确实说了一般。你甚至可以检查 Int(text) == nil。刚刚提供了一个快速概述
猜你喜欢
  • 2020-06-17
  • 1970-01-01
  • 1970-01-01
  • 2019-01-12
  • 2013-07-13
  • 2021-05-26
  • 2017-05-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多