📜  Swift – 错误处理

📅  最后修改于: 2022-05-13 01:54:52.089000             🧑  作者: Mango

Swift – 错误处理

错误处理是对函数执行期间所面临的错误的响应。函数在遇到错误条件时可以抛出错误,捕获它并做出适当的响应。简而言之,我们可以向函数添加错误处理程序,以在不退出代码或应用程序的情况下对其进行响应。

在这里,我们将讨论抛出错误时保留的输出,而不是抛出错误时保留的输出。下面是一个函数canThrowAnError() 的例子,它带有一个在 Swift 循环外实现的错误处理程序。

示例 1:

func canThrowAnError() throws 
 { 
 // This function may or may not throw an error 
}

do { 
try canThrowAnError() 
// no error was thrown 
}
 
catch { 
// an error was thrown 
}

真实场景



情况1:会抛出错误:如果安全带没有系好或燃油不足,该函数会抛出错误。因为 startCar() 可能会抛出错误,所以函数调用被包装在一个 try 表达式中。当一个函数被包装成一个 do函数,如果抛出任何错误,它将被传播到所提供的子句。

情况 2:它不会抛出错误:如果函数被调用。如果抛出错误,并且它与 carError.noSeatBelt 情况匹配,则将调用 blinkSeatBeltSign()函数。如果抛出错误,并且它与 carError.lowFuel 情况匹配,则使用捕获模式捕获的关联 [String] 值调用 goToFuelStation(_:)函数。

现在让我们用相同的编程语言演示上述案例:

示例 2:

func startCar() throws 
 { 
   // Insert the body of the function here  
}

do 
{ 
 try 
 startCar() 

 turnOnAC() 
} 

catch carError.noSeatBelt 
{
 blinkSeatBeltSign() 
} 

catch carError.lowFuel(let fuel) 
{ 
 goToFuelStation(fuel) 
}