[Swift4] try catch 예외사항 커스텀에러 정의하기

개발/iOS - Swift 2018. 8. 21. 14:05
반응형

swift 에서 try catch 예외사항 중 커스텀 예외사항을 정의하여 throw를 뱉어내 보도록 하겠습니다.


혹시 try..catch 사용방법을 찾으러 오셨다면.. 아래 링크를 참고해 주세요.

try catch 예외사항 처리방법



1. Error enum 상속 받아 재정의 하기



Error 객체를 상속받아 재정의합니다. case에는 에러를 정의하고 싶은 내용을 작성합니다.

두번째 case의 invalidValue2 를 보면 Data 이름의 문자열 변수를 받고 있습니다.



2. throws 키워드 함수 정의

ThrowsTestError 를 사용한 throw 키워드 함수를 아래와 같이 만들었습니다. 



throwsTest 함수의 구현에서 guard 문을 사용하여 필요한 조건에 충족하지 못하면 더 이상 진행하지 않고 throw를 발생시켜 중단하도록 되어있습니다.


_strData 인자의 값이 'nil' 이면 "ThrowsTestError.invalidValue" throw를 호출하고, 'Hello' 이면 "ThrowsTestError.invalidValue2" throw를 발생시킵니다.

특히 "ThrowsTestError.invalidValue2" 일때는 인자에 "Hello Error!" 문자열을 넣어줍니다.


다음에는 throwsTest 함수를 호출 해서 예외를 잡아서 처리해 봅니다. 

3. do..catch 예외상황 처리



do.. catch 를 사용하여 throwsTest를 호출합니다. 그러면 "ThrowsTestError.invalidValue", "ThrowsTestError.invalidValue2" 의 예외를 잡아서 처리 할 수가 있습니다.


특히 ThrowsTestError.invalidValue2 일 경우에는 Data 인자를 받아서 처리 할 수도 있습니다. throwTest 함수에서 대입된 "Hello Error!" 문자열이 입력되어 있습니다.




이미지라 크기가 들쭉날쭉합니다. 이해해 주세요. ㅜ.ㅡ,

만약 설명이 조금 부족하여 이해가 안되신다면 직접 작성하여 실행해보시면 이해가 쉬울껍니다.

반응형
admin