【问题标题】:No calls to throwing functions occur within 'try' expression'try' 表达式中没有调用抛出函数
【发布时间】:2022-01-05 07:06:24
【问题描述】:

`枚举outofBound:错误 { 案例负数 案例超出限制 }

func sqareRoot(Number: Int) throws -> String
{
    if Number < 10
    {
        throw outofBound.NegativeNumber
    }
     if  Number > 100
    {
        throw outofBound.OutOfLimit
    }
    else
    {
        let number1 = Double (Number / 4)
        print(number1)
        let number2 = Double (number1 / 2)
        print(number2)
        return "number2"
    }
    
}
do
{
 let Result = try sqareRoot(Number: 3600)
}
catch outofBound.NegativeNumber
{
    print("Please provide positive number")
}
catch outofBound.OutOfLimit
{
    print("please provide less than 1000 number")
}
catch
{
    print("unkonw errors occured")
}
print(squareRoot(Number: 2500))
print(squareRoot(Number: 3600))
print(squareRoot(Number: 4))

`

它给出了这个建议,我没有得到它,请帮助我。

{ 'try' 表达式中没有调用抛出函数 'catch' 块无法访问,因为在 'do' 块中没有抛出错误 }

【问题讨论】:

    标签: error-handling swiftui try-catch


    【解决方案1】:

    试试这样的:

     func test() {
        do {
            let result = try sqareRoot(Number: 3600)
             print("result: \(result)")
        }
        catch (let error) {
            switch error {
            case outofBound.NegativeNumber:
                print("Please provide >= 10 number")
            case outofBound.OutOfLimit:
                print("please provide <= 100 number")
            default:
                print("error: \(error)")
            }
        }
         // test print
         print(try? sqareRoot(Number: 25))
      }
         
        func sqareRoot(Number: Int) throws -> String {
            if Number < 10 {
                throw outofBound.NegativeNumber
            }
            if Number > 100 {
                throw outofBound.OutOfLimit
            }
            else {
                let number1 = Double (Number / 4)
                print("number1 \(number1)")
                let number2 = Double (number1 / 2)
                print("number2 \(number2)")
                return String(number2)
            }
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-28
      • 1970-01-01
      • 2019-04-11
      • 1970-01-01
      • 2020-08-14
      相关资源
      最近更新 更多