[swift] 에러 핸들링(Error Handling)

에러 핸들링 방법

Swift에서는 세 가지 방법으로 에러를 다룰 수 있습니다.

  1. 함수에서 에러 전파

    함수에서 발생한 에러를 호출한 코드로 전파할 수 있습니다. 이 때 throws 키워드를 사용하여 함수가 에러를 던질 수 있다는 것을 나타내고, try 키워드를 사용하여 해당 함수를 호출합니다.

     func fetchData() throws -> Data {
         // 에러가 발생할 수 있는 코드
     }
        
     do {
         let data = try fetchData()
         // 성공적으로 데이터를 가져온 경우 실행할 코드
     } catch {
         // 에러가 발생한 경우 실행할 코드
     }
    
  2. 옵셔널 값을 반환

    조금 더 간단한 방법으로, 함수가 성공적으로 값을 반환하면 값을, 실패했을 때 nil을 반환하는 방식을 사용할 수 있습니다. 이때 호출한 측에서 반환 값을 검사하여 에러를 핸들링할 수 있습니다.

     func fetchData() -> Data? {
         // 값이 성공적으로 반환된 경우
         // 데이터를 반환하고, 실패한 경우에는 nil을 반환
     }
        
     if let data = fetchData() {
         // 성공적으로 데이터를 가져온 경우 실행할 코드
     } else {
         // 에러가 발생한 경우 실행할 코드
     }
    
  3. 단언문(assertion)

    호출한 코드가 올바른지 확인하고, 올바르지 않은 경우 프로그램을 중단시키는 방법입니다. assert 함수를 사용하여 조건을 확인하고, 조건이 거짓인 경우 프로그램을 종료시킬 수 있습니다.

     let index = 10
     assert(index < 5, "Index should be less than 5")
    

에러 핸들링을 효과적으로 사용하여 Swift 애플리케이션의 안정성을 높일 수 있습니다. 적절한 에러 핸들링은 예기치 않은 상황에도 애플리케이션이 안정적으로 동작할 수 있도록 보장합니다.

참고 자료