맛동산이

try, try?, try! 의 차이점에 대해서 본문

앱/Swift

try, try?, try! 의 차이점에 대해서

진ddang 2023. 3. 21. 22:46

swift를 공부하다보면 try? 라는 구문을 상당히 많이 접하게 된다.

이것에 대해서 궁금증이 생겨서 찾아보게 되었다.

do catch

먼저 스위프트에서는 에러처리를 do,try catch구문을 통해서 잡게 된다.

do{
	y = try something()
}
catch{}

이러한 방식으로 do 의 구문을 돌리고 에러가 발생하면 catch구문으로 넘어가게 된다.

try?

이때 catch구문을 사용하지 않고, 리턴값을 에러가 발생할때 nil을 받기위한 간단한 구문이 바로 try?이다.

이때 리턴값은 optional 이기 때문에 언래핑을 해야 값을 확인할수 있게 된다.

try!

try!또한, catch구문을 사용하지 않고, do catch문대신 사용하는 예외처리 방법이다.

해당 try!는 nil값이 반환되면 crash하기 때문에, nil값이 오지 않는 경우에만 사용하는것이 옳바르며 언래핑! 가 들어가있기 때문에 반환값은 그냥 일반 값이 된다. (non- optional)

반응형