JS 튜토리얼

제이에스 홈 JS 소개 JS 어디로 JS 출력 JS 문 JS 구문 JS 코멘트 JS 변수 제이에스렛 JS 상수 JS 연산자 JS 산술 JS 할당 JS 데이터 유형 JS 함수 JS 객체 JS 이벤트 JS 문자열 JS 문자열 메서드 JS 문자열 검색 JS 문자열 템플릿 JS 번호 JS 숫자 메서드 JS 배열 JS 배열 메서드 JS 배열 정렬 JS 배열 반복 JS 배열 상수 JS 날짜 JS 날짜 형식 JS 날짜 가져오기 메서드 JS 날짜 설정 방법 JS 수학 JS 랜덤 JS 부울 JS 비교 JS 조건 JS 스위치 JS 루프 In에 대한 JS 루프 의 JS 루프 JS 루프 동안 JS 브레이크 JS 이터러블 JS 세트 JS 맵 JS 유형 JS 유형 변환 JS 비트와이즈 JS 정규 표현식 JS 오류 JS 범위 JS 호이스팅 JS 엄격 모드 JS 이 키워드 JS 화살표 함수 JS 클래스 JS JSON JS 디버깅 JS 스타일 가이드 JS 모범 사례 JS 실수 JS 성능 JS 예약어

JS 버전

JS 버전 JS 2009(ES5) JS 2015(ES6) JS 2016 JS 2017 JS 2018 JS IE / 엣지 JS 연혁

JS 객체

객체 정의 개체 속성 개체 메서드 개체 표시 개체 접근자 객체 생성자 개체 프로토타입 객체 반복 가능 객체 세트 객체 맵 개체 참조

JS 함수

기능 정의 기능 매개변수 함수 호출 함수 호출 기능 적용 함수 클로저

JS 클래스

수업 소개 클래스 상속 클래스 정적

JS 비동기

JS 콜백 JS 비동기 JS 약속 JS 비동기/대기

JS HTML DOM

DOM 소개 DOM 메서드 DOM 문서 DOM 요소 DOM HTML DOM 양식 DOM CSS DOM 애니메이션 DOM 이벤트 DOM 이벤트 리스너 DOM 탐색 DOM 노드 DOM 컬렉션 DOM 노드 목록

JS 브라우저 BOM

JS 창 JS 화면 JS 위치 JS 연혁 JS 네비게이터 JS 팝업 경고 JS 타이밍 JS 쿠키

JS 웹 API

웹 API 소개 웹 양식 API 웹 기록 API 웹 스토리지 API 웹 작업자 API 웹 가져오기 API 웹 지리적 위치 API

JS 아약스

AJAX 소개 AJAX XMLHttp AJAX 요청 AJAX 응답 AJAX XML 파일 AJAX PHP AJAX ASP AJAX 데이터베이스 AJAX 애플리케이션 AJAX 예제

JS JSON

JSON 소개 JSON 구문 JSON 대 XML JSON 데이터 유형 JSON 구문 분석 JSON 문자열화 JSON 객체 JSON 배열 JSON 서버 JSON PHP JSON HTML JSON JSONP

JS 대 jQuery

jQuery 선택기 제이쿼리 HTML 제이쿼리 CSS 제이쿼리 DOM

JS 그래픽

JS 그래픽 JS 캔버스 JS 플로틀리 JS 차트.js JS 구글 차트 JS D3.js

JS 예제

JS 예제 JS HTML DOM JS HTML 입력 JS HTML 객체 JS HTML 이벤트 JS 브라우저 JS 편집기 JS 연습 JS 퀴즈 JS 인증서

JS 참조

자바스크립트 객체 HTML DOM 객체


자바스크립트 오류


던지고 시도하고...잡고...드디어

명령문 은 try실행할(시도할) 코드 블록을 정의합니다.

명령문 은 catch오류를 처리하기 위한 코드 블록을 정의합니다.

finally명령문은 결과에 관계없이 실행할 코드 블록을 정의합니다.

명령문 은 throw사용자 정의 오류를 정의합니다.


오류가 발생합니다!

JavaScript 코드를 실행할 때 다른 오류가 발생할 수 있습니다.

오류는 프로그래머의 코딩 오류, 잘못된 입력으로 인한 오류, 기타 예측할 수 없는 일이 될 수 있습니다.

예시

이 예에서 우리는 의도적으로 오류를 생성하기 위해 "alert"를 "adddlert"로 잘못 입력했습니다.

<p id="demo"></p>

<script>
try {
  adddlert("Welcome guest!");
}
catch(err) {
  document.getElementById("demo").innerHTML = err.message;
}
</script>

JavaScript 는 adddlert 를 오류로 catch하고 catch 코드를 실행하여 처리합니다.


자바스크립트 시도 및 잡기

명령문을 사용하면 실행 되는 try동안 오류를 테스트할 코드 블록을 정의할 수 있습니다.

catch명령문을 사용하면 try 블록에서 오류가 발생할 경우 실행할 코드 블록을 정의할 수 있습니다.

JavaScript 문과 쌍으로 제공됩니다 try.catch

try {
  Block of code to try
}
catch(err) {
  Block of code to handle errors
}


JavaScript에서 오류 발생

오류가 발생하면 JavaScript는 일반적으로 중지되고 오류 메시지를 생성합니다.

이에 대한 기술 용어는 JavaScript 에서 예외가 발생합니다(오류 발생) .

JavaScript는 실제로 namemessage 의 두 가지 속성을 가진 Error 객체 를 생성합니다 .


throw 문

throw명령문을 사용하면 사용자 지정 오류를 생성할 수 있습니다 .

기술적 으로 예외를 던질 수 있습니다(오류 던짐) .

예외는 JavaScript String, a Number, a Boolean또는 an일 수 있습니다 Object.

throw "Too big";    // throw a text
throw 500;          // throw a number

및 와 throw함께 사용하면 프로그램 흐름을 제어하고 사용자 정의 오류 메시지를 생성할 수 있습니다.trycatch


입력 유효성 검사 예

이 예에서는 입력을 검사합니다. 값이 잘못된 경우 예외(오류)가 발생합니다.

예외(err)는 catch 문에 의해 catch되고 사용자 지정 오류 메시지가 표시됩니다.

<!DOCTYPE html>
<html>
<body>

<p>Please input a number between 5 and 10:</p>

<input id="demo" type="text">
<button type="button" onclick="myFunction()">Test Input</button>
<p id="p01"></p>

<script>
function myFunction() {
  const message = document.getElementById("p01");
  message.innerHTML = "";
  let x = document.getElementById("demo").value;
  try {
    if(x == "") throw "empty";
    if(isNaN(x)) throw "not a number";
    x = Number(x);
    if(x < 5) throw "too low";
    if(x > 10) throw "too high";
  }
  catch(err) {
    message.innerHTML = "Input is " + err;
  }
}
</script>

</body>
</html>

HTML 유효성 검사

위의 코드는 예시일 뿐입니다.

최신 브라우저는 HTML 속성에 정의된 사전 정의된 유효성 검사 규칙을 사용하여 JavaScript와 기본 제공 HTML 유효성 검사의 조합을 사용하는 경우가 많습니다.

<input id="demo" type="number" min="5" max="10" step="1">

이 자습서의 뒷부분에서 양식 유효성 검사에 대해 자세히 읽을 수 있습니다.


마지막 문

finally명령문을 사용하면 결과에 관계없이 try 및 catch 후에 코드를 실행할 수 있습니다.

통사론

try {
  Block of code to try
}
catch(err) {
  Block of code to handle errors
}
finally {
  Block of code to be executed regardless of the try / catch result
}

예시

function myFunction() {
  const message = document.getElementById("p01");
  message.innerHTML = "";
  let x = document.getElementById("demo").value;
  try {
    if(x == "") throw "is empty";
    if(isNaN(x)) throw "is not a number";
    x = Number(x);
    if(x > 10) throw "is too high";
    if(x < 5) throw "is too low";
  }
  catch(err) {
    message.innerHTML = "Error: " + err + ".";
  }
  finally {
    document.getElementById("demo").value = "";
  }
}

오류 개체

JavaScript에는 오류가 발생할 때 오류 정보를 제공하는 내장 오류 객체가 있습니다.

error 객체는 name과 message라는 두 가지 유용한 속성을 제공합니다.


오류 개체 속성

재산설명
이름오류 이름을 설정하거나 반환합니다.
메세지오류 메시지(문자열)를 설정하거나 반환합니다.

오류 이름 값

error name 속성은 6가지 다른 값을 반환할 수 있습니다.

오류 이름설명
평가 오류eval() 함수에서 오류가 발생했습니다.
범위 오류범위를 벗어난 숫자가 발생했습니다.
참조 오류잘못된 참조가 발생했습니다.
구문 오류구문 오류가 발생했습니다
유형 오류유형 오류가 발생했습니다
URI오류encodeURI()에서 오류가 발생했습니다

6가지 다른 값이 아래에 설명되어 있습니다.


평가 오류

An EvalError은 eval() 함수의 오류를 나타냅니다.

최신 버전의 JavaScript에서는 EvalError가 발생하지 않습니다. 대신 SyntaxError를 사용하십시오.


범위 오류

RangeError유효한 값 범위를 벗어난 숫자를 사용하면 A 가 발생합니다.

예: 숫자의 유효 자릿수를 500으로 설정할 수 없습니다.

예시

let num = 1;
try {
  num.toPrecision(500);   // A number cannot have 500 significant digits
}
catch(err) {
  document.getElementById("demo").innerHTML = err.name;
}

참조 오류

ReferenceError선언되지 않은 변수를 사용(참조)하면 A 가 발생합니다.

예시

let x = 5;
try {
  x = y + 1;   // y cannot be used (referenced)
}
catch(err) {
  document.getElementById("demo").innerHTML = err.name;
}

구문 오류

SyntaxError구문 오류가 있는 코드를 평가하려고 하면 A 가 발생합니다.

예시

try {
  eval("alert('Hello)");   // Missing ' will produce an error
}
catch(err) {
  document.getElementById("demo").innerHTML = err.name;
}

유형 오류

TypeError예상 유형 범위를 벗어난 값을 사용하면 A 가 발생합니다.

예시

let num = 1;
try {
  num.toUpperCase();   // You cannot convert a number to upper case
}
catch(err) {
  document.getElementById("demo").innerHTML = err.name;
}

URI(Uniform Resource Identifier) ​​오류

URI 함수에서 잘못된 문자를 사용하면 A URIError가 발생합니다.

예시

try {
  decodeURI("%%%");   // You cannot URI decode percent signs
}
catch(err) {
  document.getElementById("demo").innerHTML = err.name;
}

비표준 오류 개체 속성

Mozilla와 Microsoft는 몇 가지 비표준 오류 개체 속성을 정의합니다.

fileName(Mozilla)
lineNumber(Mozilla)
columnNumber(Mozilla)
스택(Mozilla)
설명(Microsoft)
번호(Microsoft)

공개 웹 사이트에서 이러한 속성을 사용하지 마십시오. 모든 브라우저에서 작동하지 않습니다.


완전한 오류 참조

Error 객체에 대한 전체 참조를 보려면 전체 JavaScript 오류 참조 로 이동하십시오 .