Swift Error Handling(에러 핸들링) 하는 방법
Swift의 Error Handling(에러 핸들링) 하는 방법을 배워보세요.
Swift에서 Error Handling은 예외 처리를 위한 메커니즘입니다. 예외는 프로그램에서 예상치 못한 상황이 발생했을 때 발생하는 오류를 의미합니다.
1. Swift에서 Error Handling 정의 하는 방법
Swift에서는 에러를 Error 프로토콜을 준수하는 열거형으로 정의합니다. 네트워크 요청 중 발생할 수 있는 다양한 상황을 다음과 같이 표현할 수 있습니다.
각 케이스는 발생할 수 있는 네트워크 관련 에러 상황을 나타냅니다:
- badURL: URL이 잘못되었을 때.
- requestFailed: 네트워크 요청이 실패했을 때.
- noData: 데이터가 반환되지 않았을 때.
- decodingError: 데이터를 디코딩할 수 없을 때.
2. 에러를 발생시키는 함수
throws
키워드를 사용하면 함수에서 에러를 던질 수 있습니다.
- URL 유효성 검증: URL(string:)을 통해 URL이 유효하지 않으면 NetworkError.badURL를 던집니다.
- 네트워크 요청 시뮬레이션: Bool.random()으로 요청 성공 여부를 랜덤하게 결정합니다.
- 더미 데이터 반환: 요청이 성공하면 데이터를 반환합니다.
3. 에러 처리: do-catch 구문
에러를 처리하려면 do-catch 블록을 사용해야 합니다. try 키워드를 사용해 에러를 발생시킬 수 있는 함수를 호출하고, 발생한 에러를 catch 블록에서 처리합니다.
4. 옵셔널 try? 와 강제 try!
try?와 try!는 에러 처리의 간소화 및 강제 실행을 위해 제공된니다.
- try? : 에러가 발생하면 nil을 반환하여 에러를 무시할 수 있습니다.
- try! : 에러가 발생하지 않을 것이라고 확신할 때 사용합니다. 하지만 에러가 발생하면 런타임 크래시가 발생합니다.