함수를 호출하던 중 에러가 발생한다면... 어떻게 에러를 반환해 줄 수 있는지 알아보자!
보통 C에서는 함수호출이 정상일 경우 리턴값이 0,
그 외의 반환값은 오류처리를 한다고 한다 (보통은 -1, NULL을 리턴한다고 한다.)
그렇다면... 각 어떠한 에러인지 명시한 에러코드를 리턴하지 않을까.. ?
int someFunction() {
// 일반 동작
if (/* 에러 조건 */) {
return ERROR_CODE; // 에러를 나타내는 코드
}
// 다른 동작
return 0; // 성공을 나타내는 코드
}
에러 던지기!
public void someMethod() throws CustomException {
// 일반 동작
if (/* 에러 조건 */) {
throw new CustomException("에러 메시지");
}
// 다른 동작
}
자바와 마찬가지로 커스텀한 에러 객체를 던질 수 있다.
enum CustomError: Error {
case someError
}
func someFunction() throws {
// 일반 동작
if /* 에러 조건 */ {
throw CustomError.someError
}
// 다른 동작
}