[ Web Proxy ]
URL:
Viewing: https://raw.githubusercontent.com/Leftree/javascript-tutorial/master/docs/features/error.md [Back]  [Original]

# 

## Error 

JavaScript JavaScript `Error`

```javascript
var err = new Error('');
err.message // ""
```

`Error``err``Error``message``Error`

JavaScript `Error``message` JavaScript `Error``name``stack`

- **message**
- **name**
- **stack**

`name``message`

```javascript
if (error.name) {
  console.log(error.name + ': ' + error.message);
}
```

`stack`

```javascript
function throwit() {
  throw new Error('');
}

function catchit() {
  try {
    throwit();
  } catch(e) {
    console.log(e.stack); // print stack trace
  }
}

catchit()
// Error
//    at throwit (~/examples/throwcatch.js:9:11)
//    at catchit (~/examples/throwcatch.js:3:9)
//    at repl:1:5
```

`throwit``catchit`

## 

`Error`JavaScript 6`Error`6

### SyntaxError 

`SyntaxError`

```javascript
// 
var 1a;
// Uncaught SyntaxError: Invalid or unexpected token

// 
console.log 'hello');
// Uncaught SyntaxError: Unexpected string
```

`SyntaxError`token 

### ReferenceError 

`ReferenceError`

```javascript
// 
unknownVariable
// Uncaught ReferenceError: unknownVariable is not defined
```

`this`

```javascript
// 
console.log() = 1
// Uncaught ReferenceError: Invalid left-hand side in assignment

// this 
this = 1
// ReferenceError: Invalid left-hand side in assignment
```

`console.log``this``ReferenceError`

### RangeError 

`RangeError``Number`

```javascript
// 
new Array(-1)
// Uncaught RangeError: Invalid array length
```

### TypeError 

`TypeError``new``new`

```javascript
new 123
// Uncaught TypeError: number is not a func

var obj = {};
obj.unknownMethod()
// Uncaught TypeError: obj.unknownMethod is not a function
```

`TypeError``obj.unknownMethod``undefined`

### URIError 

`URIError` URI `encodeURI()``decodeURI()``encodeURIComponent()``decodeURIComponent()``escape()``unescape()`

```javascript
decodeURI('%2')
// URIError: URI malformed
```

### EvalError 

`eval``EvalError`

### 

6`Error`message

```javascript
var err1 = new Error('');
var err2 = new RangeError('');
var err3 = new TypeError('');

err1.message // ""
err2.message // ""
err3.message // ""
```

## 

 JavaScript 

```javascript
function UserError(message) {
  this.message = message || '';
  this.name = 'UserError';
}

UserError.prototype = new Error();
UserError.prototype.constructor = UserError;
```

`UserError``Error`

```javascript
new UserError('');
```

## throw 

`throw`

```javascript
if (x < 0) {
  throw new Error('x ');
}
// Uncaught ReferenceError: x is not defined
```

`x``0``x``throw``Error`

`throw`

```javascript
function UserError(message) {
  this.message = message || '';
  this.name = 'UserError';
}

throw new UserError('');
// Uncaught UserError {message: "", name: "UserError"}
```

`throw``UserError`

`throw`

```javascript
// 
throw 'Error';
// Uncaught Error

// 
throw 42;
// Uncaught 42

// 
throw true;
// Uncaught true

// 
throw {
  toString: function () {
    return 'Error!';
  }
};
// Uncaught {toString: }
```

 JavaScript `throw``throw`

## try...catch 

JavaScript `try...catch`

```javascript
try {
  throw new Error('!');
} catch (e) {
  console.log(e.name + ": " + e.message);
  console.log(e.stack);
}
// Error: !
//   at :3:9
//   ...
```

`try``throw`JavaScript `catch``catch``catch``try`

`try...catch`

```javascript
try {
  f();
} catch(e) {
  // 
}
```

`f``catch`

`catch`

```javascript
try {
  throw "";
} catch (e) {
  console.log(111);
}
console.log(222);
// 111
// 222
```

`try``catch`

`catch``try...catch`

```javascript
var n = 100;

try {
  throw n;
} catch (e) {
  if (e 

Web Proxy Viewer  |  New URL  |  Original Page