390
자바에서 코틀린으로
| 오류 무시하기 |
오류를 무시할 수도 있다. 실패하는 루틴이 자신을 호출한 쪽의 주의를 끌기 위해 그 어떤 일도
하지 않거나, 호출하는 쪽에서 오류 여부를 검사하지 않을 수 있다.
이렇게 하면 영속적인 데이터를 오염시키거나 작업을 조용히 실패하게 되기 때문에, 우리는 이
보다는 더 높은 수준을 겨냥해야 한다.
| 그냥 프로그램 종료하기 |
일부 프로그램은 오류를 감지하면 그냥 프로그램을 끝낸다.
오류 발생 시 재시작을 시켜주는 수퍼바이저와 영속적인 데이터의 오염을 방지하기 위해 주의
깊게 작성한 코드를 조합하는 방식은 이미 전투를 통해 검증된 적절한 전략이다. 연산을 중단
하기 위해 예외를 던지는 것은 이런 기법을 전체 프로그램 대신 프로시저에 적용한 전략이다.
| 특별한 값 반환하기 |
오류를 표현하는 특별한 값을 반환하는 것도 유용한 기법일 수 있다. 예를 들어 함수가 리스트
에서 원소를 찾지 못하면 원소의 인덱스 대신
-
1
을 반환할 수 있다.
어떤 함수의 반환 값이 모두 다 올바른 값일 경우 이 기법을 사용할 수 없다. 함수를 호출하는
쪽에서도 특별한 값을 반환하는 관습을 알아야(그리고 기억해야) 하기 때문에 이 전략은 위험
할 수도 있다. 만약 리스트에 포함된 두 원소의 인덱스를 (조금 전에 이야기한 함수를 통해 찾
아서 ) 서로 빼는 방식으로 두 원소 사이의 거리를 계산하는데, 둘 중 한 원소를 찾지 못해서 인
덱스로
-
1
이 반환된다면, 이 특별한 경우를 명시적으로 처리하지 않는 한 계산이 틀린 결과를
내게 ...