gpt4 book ai didi

Swift:解析数字字符串时如何捕获异常?

转载 作者:行者123 更新时间:2023-11-28 09:35:30 24 4
gpt4 key购买 nike

在 C# 或 Java 中,解析数字字符串通常会抛出格式异常。但是,下面的代码没有捕获到错误。怎么了?

func getInt(_ data:String)->Int
{
do
{
return try Int(data)!
}
catch
{
return -1;
}
}

var a = "x123"
var b:Int = getInt(a)
print("Result: " + b)

最佳答案

你的做法是完全错误的。 Int 初始化器返回一个可选的 Int,所以下面是您如何使用它:

if let converted = Int (data) {
// Yes, it was converted
} else {
// No, conversion failed.
}

或者替代地

guard let converted = Int (data) else {
// Conversion failed
return
}

// Continue using "converted".

try 不会捕获任何异常,因为不会抛出任何异常。 Int (data) 返回一个可选的 Int,换句话说,要么是 Int,要么是 nil。它永远不会抛出。没有异常(exception)可以捕捉。有一个函数 getInt 只做 Int() 做的事情只会增加完全不需要的复杂性。创建一个抛出异常的函数 getInt 更糟糕。

关于Swift:解析数字字符串时如何捕获异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46866311/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com