Error Handling - The Swift Programming Language (Swift 5.6)
Error 처리는 프로그램의 오류 조건에 응답하고 복구하는 프로세스
throwing, catching, propagating, and manipulating recoverable errors at runtime.
일부 Operations 은 항상 실행 완료 혹은 유효한 output을 생성하는 것을 보장하지 않음
Optionals은 값의 부재를 나타내기 위해 사용되지만 Operation 이 실패 할때, 그것은 Error는 실패의 원인을 이해하는데 자주 유용하게 사용된다.
예를 들어 데이터를 읽고 처리하는 작업을 disk의 파일에서 고려할때.
파일이 지정된 경로에 없거나, 읽기 권한이 없거나 호환 가능한 형식으로 인코딩되지 않는 상황의 실패에 대처 할 여러 방법이 있다.
NOTE
NSErrorSwift의 오류 처리는 Cocoa 및 Objective-C의 클래스를 사용하여 오류 처리패턴과 상호 운용됨
Swift에서 error들은 Error protocol을 따르는 값의 타입들에 의해 나타남.
이 프로토콜은 타입이 error를 처리하기위해 사용될수 있음을 나타냄.
enum VendingMachineError: Error {
case invalidSelection
case insufficientFunds(coinsNeeded: Int)
case outOfStock
}