JavaScript中的Error类

简介: # 引言今天来和大家一起学习一下JavaScript中的Error类。# Error类JavaScript中的throw和catch语句可以抛出和捕获任何JavaScript的值,包括原始值等。虽然没有用来表示错误的异常类型,但是JavaScript中定义了一个Error类。惯用的做法是使用Error类或其子类的实例作为throw抛出的错误。使用Error对象的一个主要原因就是在创建Error对象时,该对象能够捕获JavaScript的栈状态,如果异常没有被捕获,则会显示包含错误消息的栈跟踪信息,而这对排查错误很有帮助。(栈跟踪信息会展示创建Error的地方,而不是throw语句抛

引言

今天来和大家一起学习一下JavaScript中的Error类。

Error类

JavaScript中的throw和catch语句可以抛出和捕获任何JavaScript的值,包括原始值等。虽然没有用来表示错误的异常类型,但是JavaScript中定义了一个Error类。惯用的做法是使用Error类或其子类的实例作为throw抛出的错误。使用Error对象的一个主要原因就是在创建Error对象时,该对象能够捕获JavaScript的栈状态,如果异常没有被捕获,则会显示包含错误消息的栈跟踪信息,而这对排查错误很有帮助。(栈跟踪信息会展示创建Error的地方,而不是throw语句抛出他的地方。)

Error对象有两个属性:message和name,还有一个toString()方法。message属性的值是我们传给Error()构造函数的值。必须时会被转换为字符串,对使用Error()创建的错误对象,name属性的值始终是"Error"。toString()方法返回一个字符串,由name属性的值的后面跟一个冒号和一个空格,然后跟着message属性的值构成。

虽然ECMAScript标准中没有定义,但是Node和所有现代浏览器也都在Error对象上定义了stack属性。这个属性的值是一个多行字符串,包含创建错误对象时JavaScript调用栈跟踪信息。在捕获到异常错误时,可以将这个值的信息作为日志收集起来。

除了Error类,js中还定义了一些他的子类,以便于出啊发ECMAScript定义的一些特殊类型的错误。这些子类包括:EvalError,RangeError,ReferenceError,SyntaxError,TypeError和URIError。你可以按照自己认为合适的方法在代码中使用这些错误类。与基类Error一样,这些子类也都有一个构造函数,接收一个消息参数,每个子类的示例都有一个name属性,其值就是构造函数的名字。

作为开发者,我们可以自己定义Error的子类,以便于更好的封装自己程序的错误信息。自定义的错误对象可以不限于message和name属性。在定义自己的子类的时候,可以任意添加新属性以提供更多的错误细节。

实例

class HttpError extends Error {
    constructor(status , statusText , url ) {
        super(`${status} ${statusText} : ${url}`);
        this.status = status;
        this.statusText = statusText;
        this.url = url;
    }
    get name() {
        return "HttpError";
    }
    let error = new HttpError(404 , "Not Found" , "http://example.com");
    error.status;
    error.statusText;
    error.url;
相关文章
|
3月前
|
监控 JavaScript 前端开发
深入理解 Nuxt.js 中的 app:error 钩子
【9月更文挑战第25天】在 Nuxt.js 中,`app:error` 钩子是一个强大的工具,用于处理应用程序中的各种错误。它可以在服务器端渲染或客户端运行时触发,帮助提升应用稳定性和用户体验。通过在 `nuxt.config.js` 中定义该钩子,开发者可以实现错误页面显示、错误日志记录及错误恢复等功能,确保应用在遇到问题时能妥善处理并恢复正常运行。
55 10
|
3月前
|
Web App开发 JavaScript 前端开发
JavaScript 类(class)
JavaScript 类(class)
23 2
JavaScript 类(class)
|
3月前
|
开发者 UED
深入理解 Nuxt.js 中的 app:error 钩子
【9月更文挑战第26天】在 Nuxt.js 中,钩子函数是在特定生命周期阶段执行代码的机制,`app:error` 钩子用于处理应用中的错误,包括服务器端和客户端渲染时出现的问题。它提供了一个集中处理错误的机制,提升了用户体验。当组件渲染过程中出现错误时,`app:error` 钩子会被触发,可以在 `nuxt.config.js` 文件中定义该钩子。通过分析错误对象 `err` 和上下文信息 `context`,开发者可以更好地处理各种错误情况。相比组件内的 `try/catch` 或浏览器原生错误处理,`app:error` 提供了更全局和有针对性的错误处理方式。
|
3月前
|
JavaScript 前端开发
JavaScript基础知识-构造函数(也称为"类")定义
本文介绍了JavaScript中构造函数(也称为“类”)的定义和使用方法。
38 1
JavaScript基础知识-构造函数(也称为"类")定义
|
3月前
|
JavaScript 前端开发 Java
JavaScript 类知识点概览
概览JavaScript中类的知识点,包括类的定义和实现、添加方法和get/set方法、类的继承和静态方法的使用。通过学生类和人员类的例子,演示了类的构造器、方法定义、继承关系和静态方法的调用。
JavaScript 类知识点概览
|
3月前
|
JavaScript 前端开发 开发者
JavaScript 类继承
JavaScript 类继承
22 1
|
3月前
|
JavaScript 安全
ES6中JS类实现的解读
ES6中JS类实现的解读
23 2
|
3月前
|
JavaScript 前端开发 索引
|
3月前
|
JavaScript 前端开发
JS中Promise的类式实现写法
JS中Promise的类式实现写法
|
2月前
|
前端开发 JavaScript 开发者
深入理解JavaScript中的对象与类
深入理解JavaScript中的对象与类
17 0