에러 커스텀
enum MismatchError: Error{
case nameMismatch
case numberMismatch
}
예외 처리 함수 형태(void)
func guessMyName(name input:String) throws{
if(input != "정답"){
throw MismatchError.nameMismatch
} else{
print("정답")
}
}
예외 처리 함수 형태(return값 있는 경우)
func guessMyNumber(number input: Int) throws -> Bool{
if(input != 10){
throw MismatchError.numberMismatch
}
else{
print("정답")
}
}
do-try-catch
- throws로 정의된 함수를 사용하는 부분
- error의 타입이 뭔지 저장하는 변수는
error
- 만약 에러에 대한 처리를 해주지 않아도 된다면 다음과 같이 사용하면 됨.
try? guessMyNumber(number: 9)
do{
try guessMyNumber(number: 9)
print("에러없음")
} catch{
print("에러있음: \(error)")
}
리턴값이 있는 경우 do-try-catch
- 동일하게 리턴값을 변수로 받을 수 있음.
- 에러 발생 시 아래코드에서 let~단락은 실행 x
- 바로 catch문으로 이동 후 실행됨
do{
let a = try guessMyNumber(number: 9)
} catch{
print("에러있음: \(error)")
}
func에 대한 주석
- 단축키
alt
+ cmd
+ /
- 반드시 정의된 함수 위에서 단축키를 입력
func DFS(_ list:[Int],_ n:Int,_ r:Int,_ idx:Int,_ selected: inout [Int]) -> Void{
...(생략)
}