Movatterモバイル変換


[0]ホーム

URL:


Menu
×
See More 
Sign In
+1 Get Certified Upgrade For Teachers Spaces Get Certified Upgrade For Teachers Spaces
   ❮     
     ❯   

Basic JavaScript

JS TutorialJS SyntaxJS VariablesJS OperatorsJS If ConditionsJS LoopsJS StringsJS NumbersJS FunctionsJS ObjectsJS DatesJS ArraysJS SetsJS MapsJS MathJS RegExpJS Data TypesJS ErrorsJS DebuggingJS EventsJS ProgrammingJS ReferencesJS UTF-8 CharactersJS Versions

JS Advanced

JS FunctionsJS ObjectsJS ClassesJS IterationsJS PromisesJS ModulesJS HTML DOMJS WindowsJS Web APIJS AJAXJS JSONJS jQueryJS GraphicsJS ExamplesJS Reference


JavaScript Errors


Throw, and Try...Catch...Finally

Thetry statement defines a code block to run (to try).

Thecatch statement defines a code block to handle any error.

Thefinally statement defines a code block to run regardless of the result.

Thethrow statement defines a custom error.


Errors Will Happen!

When executing JavaScript code, different errors can occur.

Errors can be coding errors made by the programmer, errors due to wrong input, and other unforeseeable things.

Example

In this example we misspelled "alert" as "adddlert" to deliberately produce an error:

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

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

JavaScript catchesadddlert as an error, and executes the catch code to handle it.


JavaScript try and catch

Thetry statement allows you to define a block of code to be tested for errors while it is being executed.

Thecatch statement allows you to define a block of code to be executed, if an error occurs in the try block.

The JavaScript statementstry andcatch come in pairs:

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


JavaScript Throws Errors

When an error occurs, JavaScript will normally stop and generate an error message.

The technical term for this is: JavaScript willthrow an exception (throw an error).

JavaScript will actually create anError object with two properties:name andmessage.


The throw Statement

Thethrow statement allows you to create a custom error.

Technically you canthrow an exception (throw an error).

The exception can be a JavaScriptString, aNumber, aBoolean or anObject:

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

If you usethrow together withtry andcatch, you can control program flow and generate custom error messages.


Input Validation Example

This example examines input. If the value is wrong, an exception (err) is thrown.

The exception (err) is caught by the catch statement and a custom error message is displayed:

<!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.trim() == "") 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>
Try it Yourself »

HTML Validation

The code above is just an example.

Modern browsers will often use a combination of JavaScript and built-in HTML validation, using predefined validation rules defined in HTML attributes:

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

You can read more about forms validation in a later chapter of this tutorial.


The finally Statement

Thefinally statement lets you execute code, after try and catch, regardless of the result:

Syntax

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
}

Example

function myFunction() {
  const message = document.getElementById("p01");
  message.innerHTML = "";
  let x = document.getElementById("demo").value;
  try {
    if(x.trim() == "") 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 = "";
  }
}
Try it Yourself »

The Error Object

JavaScript has a built in error object that provides error information when an error occurs.

The error object provides two useful properties: name and message.


Error Object Properties

PropertyDescription
nameSets or returns an error name
messageSets or returns an error message (a string)

Error Name Values

Six different values can be returned by the error name property:

Error NameDescription
EvalErrorAn error has occurred in the eval() function
RangeErrorA number "out of range" has occurred
ReferenceErrorAn illegal reference has occurred
SyntaxErrorA syntax error has occurred
TypeErrorA type error has occurred
URIErrorAn error in encodeURI() has occurred

The six different values are described below.


Eval Error

AnEvalError indicates an error in the eval() function.

Newer versions of JavaScript do not throw EvalError. Use SyntaxError instead.


Range Error

ARangeError is thrown if you use a number that is outside the range of legal values.

For example: You cannot set the number of significant digits of a number to 500.

Example

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

Reference Error

AReferenceError is thrown if you use (reference) a variable that has not been declared:

Example

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

Syntax Error

ASyntaxError is thrown if you try to evaluate code with a syntax error.

Example

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

Type Error

ATypeError is thrown if an operand or argument is incompatible with the type expected by an operator or function.

Example

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

URI (Uniform Resource Identifier) Error

AURIError is thrown if you use illegal characters in a URI function:

Example

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

Non-Standard Error Object Properties

Mozilla and Microsoft define some non-standard error object properties:

fileName (Mozilla)
lineNumber (Mozilla)
columnNumber (Mozilla)
stack (Mozilla)
description (Microsoft)
number (Microsoft)

Do not use these properties in public web sites. They will not work in all browsers.


Complete Error Reference

For a complete reference of the Error object, go to ourComplete JavaScript Error Reference.




×

Contact Sales

If you want to use W3Schools services as an educational institution, team or enterprise, send us an e-mail:
sales@w3schools.com

Report Error

If you want to report an error, or if you want to make a suggestion, send us an e-mail:
help@w3schools.com

W3Schools is optimized for learning and training. Examples might be simplified to improve reading and learning.
Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness
of all content. While using W3Schools, you agree to have read and accepted ourterms of use,cookie and privacy policy.

Copyright 1999-2025 by Refsnes Data. All Rights Reserved.W3Schools is Powered by W3.CSS.


[8]ページ先頭

©2009-2025 Movatter.jp