자바스크립트 시도...잡기...마침내
예시
이 예에서는 try 블록 에 오타가 있습니다. 경고 철자가 잘못되었습니다.
catch 블록 은 오류를 포착하고 코드를 실행하여 처리합니다.
<p id="demo"></p>
<script>
try {
adddlert("Welcome guest!");
}
catch(err) {
document.getElementById("demo").innerHTML = err.message;
}
</script>
아래에 더 많은 예가 있습니다.
정의 및 사용
오류 가 발생 하면 JavaScript가 중지 되고 오류 메시지가 생성됩니다.
메모
이에 대한 기술 용어는 JavaScript 에서 예외가 발생 합니다.
JavaScript는 name 과 message 의 두 가지 속성을 가진 Error 객체 를 만듭니다 .
명령문 콤보 는 try...catch...finally
JavaScript를 중지하지 않고 오류를 처리합니다.
명령문 은 try
실행할(시도할) 코드 블록을 정의합니다.
명령문 은 catch
오류를 처리하기 위한 코드 블록을 정의합니다.
이 finally
명령문은 결과에 관계없이 실행할 코드 블록을 정의합니다.
명령문 은 throw
사용자 정의 오류를 정의합니다.
catch
및 둘 다 finally
선택 사항이지만 둘 중 하나를 사용해야 합니다.
메모
try 및 catch 와 함께 throw 를 사용 하면 프로그램 흐름을 제어하고 사용자 지정 오류 메시지를 생성할 수 있습니다.
또한보십시오:
통사론
try {
tryCode - Code block to run
}
catch(err) {
catchCode -
Code block to handle errors
}
finally {
finallyCode - Code block to be executed regardless of the try result
}
매개변수
Parameter | Description |
tryCode | Required. Code block to be tested while executing. |
err | A local reference to the error object. |
catchCode | Optional. Code block to execute if an error occurs. |
finallyCode | Optional. Code block to execute regardless of the try result |
더 많은 예
이 예에서는 입력을 검사합니다.
값이 잘못된 경우 예외(오류)가 발생합니다.
<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="message"></p>
<script>
function myFunction() {
const message =
document.getElementById("message");
message.innerHTML = "";
let x =
document.getElementById("demo").value;
try {
if(x == "") throw "is Empty";
if(isNaN(x)) throw "not a number";
if(x > 10) throw "too high";
if(x < 5) throw "too low";
}
catch(err) {
message.innerHTML =
"Input " + err;
}
}
</script>
finally 문 은 try 결과에 관계없이 코드를 실행합니다.
function myFunction()
const message =
document.getElementById("message");
message.innerHTML = "";
let x =
document.getElementById("demo").value;
try {
if(x == "") throw "Empty";
if(isNaN(x))
throw "Not a number";
if(x >
10) throw "Too high";
if(x <
5) throw "Too low";
}
catch(err)
{
message.innerHTML = "Error: " +
err + ".";
}
finally {
document.getElementById("demo").value = "";
}
}
브라우저 지원
try...catch
ECMAScript3(ES3) 기능입니다.
ES3(JavaScript 1999)는 모든 브라우저에서 완벽하게 지원됩니다.
Chrome | IE | Edge | Firefox | Safari | Opera |
Yes | Yes | Yes | Yes | Yes | Yes |