PositionError 객체란?
HTML5 Geolocation API를 사용할 때 위치 정보 조회에 실패하면 PositionError 객체가 반환됩니다. 이 객체는 오류의 원인을 식별할 수 있는 code 속성과 함께, 개발자가 상황에 맞게 적절히 대응할 수 있도록 다양한 오류 코드를 제공합니다.
아래 표는 PositionError 객체에서 반환될 수 있는 오류 코드들을 정리한 것입니다.
| 코드 | 상수(Constant) | 설명 |
|---|---|---|
| 0 | UNKNOWN_ERROR | 알 수 없는 오류로 인해 기기의 위치 정보를 가져오는 데 실패했습니다. |
| 1 | PERMISSION_DENIED | 애플리케이션에 위치 서비스 사용 권한이 없어 기기의 위치 정보를 가져오는 데 실패했습니다. |
| 2 | POSITION_UNAVAILABLE | 기기의 현재 위치를 확인할 수 없습니다. |
| 3 | TIMEOUT | 지정된 최대 제한 시간(timeout) 내에 위치 정보를 가져오지 못했습니다. |
PositionError 활용 예제 코드
다음은 PositionError 객체를 실제로 활용하는 샘플 코드입니다. 여기서 errorHandler 메서드는 Geolocation API 호출 시 전달되는 콜백 함수 역할을 합니다.
function errorHandler( err ) {
if (err.code == 1) {
// 접근이 거부된 경우 (PERMISSION_DENIED)
}
...
}위 예제처럼 err.code 값을 검사하면 오류 유형에 따라 분기 처리가 가능합니다. 예를 들어 코드가 1인 경우 사용자에게 권한 허용을 요청하는 안내 메시지를 보여주고, 코드가 3인 경우 재시도 버튼을 제공하는 방식으로 사용자 경험을 개선할 수 있습니다.
참고 사항
PositionError 객체는 code 외에도 사람이 읽을 수 있는 오류 설명을 담고 있는 message 속성을 함께 제공합니다. 디버깅 시에는 message 속성을 함께 출력하면 원인 파악에 큰 도움이 됩니다.