RangeError
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
RangeError
객체는 어떤 값이 집합에 없거나 허용되는 범위가 아닐 때 오류를 나타냅니다.
설명
어떤 값을 그 값이 포함되는 범위를 허용하지 않는 함수에 인수로 전달하려 할 때 RangeError
가 발생합니다.
이 문제는 다음과 같은 경우에 발생할 수 있습니다.
- 허용되는 문자열이 아닌 값을
String.prototype.normalize()
에 전달하거나, Array
생성자를 통해 잘못된 길이의 배열을 만드려고 시도하거나,- 숫자 메서드
Number.prototype.toExponential()
,Number.prototype.toFixed()
혹은Number.prototype.toPrecision()
에 나쁜 값을 전달하는 경우.
RangeError
는 직렬화 가능한 객체이기 때문에, structuredClone()
로 복제하거나 postMessage()
를 사용하여 Worker 간에 복사할 수 있습니다.
RangeError
는 Error
의 하위 클래스입니다.
생성자
RangeError()
-
새로운
RangeError
객체를 만듭니다.
인스턴스 속성
인스턴스 속성은 부모인 Error
로부터 상속받습니다.
아래 속성은 RangeError.prototype
에 정의되어 있으며 모든 RangeError
인스턴스 객체와 공유합니다.
RangeError.prototype.constructor
-
인스턴스 객체를 생성하는 생성자 함수입니다.
RangeError
인스턴스에서 초기 값은RangeError
생성자입니다. RangeError.prototype.name
-
오류의 유형에 대한 이름을 나타냅니다.
RangeError.prototype.name
의 초기 값은"RangeError"
입니다.
인스턴스 메서드
인스턴스 메서드는 부모인 Error
로부터 상속받습니다.
예제
RangeError 사용하기(숫자 값일 경우)
function check(n) {
if (!(n >= -500 && n <= 500)) {
throw new RangeError("The argument must be between -500 and 500.");
}
}
try {
check(2000);
} catch (error) {
if (error instanceof RangeError) {
// 오류 처리
}
}
RangeError 사용하기 (숫자값이 아닐 경우)
function check(value) {
if (!["apple", "banana", "carrot"].includes(value)) {
throw new RangeError(
'The argument must be an "apple", "banana", or "carrot".',
);
}
}
try {
check("cabbage");
} catch (error) {
if (error instanceof RangeError) {
// 오류 처리
}
}
명세
Specification |
---|
ECMAScript Language Specification # sec-native-error-types-used-in-this-standard-rangeerror |
브라우저 호환성
BCD tables only load in the browser