在JavaScript中,常见的异常类型包括以下几种:
1. SyntaxError(语法错误)
- 当JavaScript引擎无法解析代码时抛出。
- 例如:
var x = ;
(缺少变量值)。
2. ReferenceError(引用错误)
- 当试图访问一个未声明的变量时抛出。
- 例如:
console.log(y);
(变量y未定义)。
3. TypeError(类型错误)
- 当操作数或函数参数的类型不正确时抛出。
- 例如:
"hello".length = 5;
(字符串不可变)。
4. RangeError(范围错误)
- 当数值超出允许的范围时抛出。
- 例如:
Array(Infinity)
(创建无限大小的数组)。
5. EvalError(Eval错误)
- 当
eval()
函数的使用不正确时抛出(现代JavaScript引擎通常不会抛出此错误)。
6. URIError(URI错误)
- 当
encodeURI()
或decodeURI()
函数的参数不合法时抛出。
7. InternalError(内部错误)
- 当JavaScript引擎遇到意外情况时抛出。
- 例如:递归调用过深导致栈溢出。
8. AggregateError(聚合错误)
- 当一个操作引发多个错误时抛出。
- 例如:Promise.all()中有多个Promise被拒绝。
9. CustomError(自定义错误)
- 开发者可以创建自己的错误类型,继承自
Error
类。 - 例如:
class MyCustomError extends Error { constructor(message) { super(message); this.name = "MyCustomError"; } } throw new MyCustomError("Something went wrong");
日志记录示例
使用console.error()
可以记录这些异常:
try { // 可能抛出异常的代码 var x = ; } catch (e) { console.error(e); // 输出异常信息 }
异常处理最佳实践
- 使用
try...catch
块来捕获和处理异常。 - 在
catch
块中记录错误信息,便于调试和维护。 - 根据错误类型采取不同的处理策略。
- 避免在
catch
块中忽略异常,至少应该记录下来。
通过了解和处理这些常见的异常类型,可以提高代码的健壮性和可维护性。