Error
작성일
error
enum MismatchError: Error {
// 미리 에러를 정의해둔다.
case nameMismatch
case numberMismatch
}
func guessMyName(name input: String) {
print("guessMyName() called")
if input != "최재권" {
print("틀렸다")
return
}
print("맞췄다")
}
guessMyName(name: "최재권")
실행시켜보면,
guessMyName() called
맞췄다
이렇게 여기까지 탄다 하지만, 이름을 바꾸면
guessMyName(name: "류민희")
실행시켜보면,
guessMyName() called
틀렸다
로 아래는 타지 않고 위에만 탄다.
만약에 return을 지우면, 코드를 전부다 실행시켜서
guessMyName() called
틀렸다
맞췄다
이렇게 두가지 다 나온다.
이제 error enum을 활용해보면,
enum MismatchError: Error {
// 미리 에러를 정의해둔다.
case nameMismatch
case numberMismatch
}
//에러를 던지는 메소드
func guessMyName(name input: String) throws {
print("guessMyName() called")
if input != "최재권" {
print("틀렸다")
throw MismatchError.nameMismatch //return 대신
}
print("맞췄다")
}
try? guessMyName(name: "류민희") //대신 여기서 try를 꼭 사용해야한다.
실행해보면
guessMyName() called
틀렸다
만 뜬다 만약에 error를 잡고 싶으면,
enum MismatchError: Error {
// 미리 에러를 정의해둔다.
case nameMismatch
case numberMismatch
}
//에러를 던지는 메소드
func guessMyName(name input: String) throws {
print("guessMyName() called")
if input != "최재권" {
print("틀렸다")
throw MismatchError.nameMismatch //return 대신
}
print("맞췄다")
}
do {
try guessMyName(name: "류민희")
} catch {
print("잡은 에러: \(error)")
}
실행 시켜보면
guessMyName() called
틀렸다
잡은 에러: nameMismatch
이런 방식으로 사용할 수 있다.