第一章 IO.js Errors.pdf

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
IO.j s Errors io.js⽣成的错误分为两类:JavaScript错误和系统错误。所有的错误都继承于 JavaScript的Error类,或就是它的实例。并且都⾄少 供这个类中可⽤的属性。 当⼀个操作因为语法错误或语⾔运⾏时级别 (language-runtime-level )的原因不被允许 时,⼀个JavaScript error会被⽣成并抛出⼀个异常。如果⼀个操作因为系统级 别 (system-level )限制⽽不被允许时,⼀个系统错误会被⽣成。客户端代码接着会根 据API传播它的⽅式来被给予捕获这个错误的机会。 API被调⽤的风格决定了⽣成的错误如何回送 (handed back ),传播给客户端。这反 过来告诉客户端如何捕获它们。异常可以通过try / catch结构捕获;其他的捕获 ⽅式请参阅下⽂。 JavaScript错误 JavaScript错误表⽰API被错误的使⽤了,或者正在写的程序有问题。 Class: Error ⼀个普通的错误对象。和其他的错误对象不同,Error实例不指⽰任何 为什么错误发 ⽣ 的原因。Error在它们被实例化时,会记录下“堆栈追踪”信息,并且可以会 供⼀ 个错误描述。 注意:io.js会将系统错误以及JavaScript错误都封装为这个类的实例。 new Error(message) 实例化⼀个新的Error对象,并且⽤ 供的message设置它的.message属性。它 的.stack属性将会描述new Error被调⽤时程序的这⼀刻。堆栈追踪信息⾪属于V8 堆栈追踪API 。堆栈追踪信息只延伸到同步代码执⾏的开始, 或Error.stackTraceLimit给出的帧数 (number of frames ),这取决于哪个更 ⼩。 error.message ⼀个在Error()实例化时被传递的字符串。这个信息会出现在堆栈追踪信息的第⼀ ⾏。改变这个值将不会改变堆栈追踪信息的第⼀⾏。 error.stack 这个属性返回⼀个代表错误被实例化时程序运⾏的那个点的字符串。 ⼀个堆栈追踪信息例⼦: Error: Things keep happening! at /home/gb sey/file.js:525:2 at Frobnicator.refrob late (/home/gb sey/b siness-logic.js:424 at Actor. (/home/gb sey/actors.js:400:8) at increaseSynergy (/home/gb sey/actors.js:701:6) 第⼀⾏被格式化为错误类名: 错误信息,然后是⼀系列的堆栈信息帧 (以“at”开头)。每帧都描述了⼀个最终导致错误⽣成的⼀次调⽤的地点。V8会试 图去给出每个函数的名字 (通过变量名,函数名或对象⽅法名),但是也有可能它找 不到⼀个合适的名字。如果V8不能为函数定义⼀个名字,那么那⼀帧⾥只会展⽰出位 置信息。否则,被定义的函数名会显⽰在位置信息之前。 帧只会由JavaScript函数⽣成。例如,如果在⼀个JavaScript函数⾥,同步执⾏ 了⼀个叫cheetahify的C++ addon函数,那么堆栈追踪信息中的帧⾥将不会 有cheetahify调⽤: var cheetahify = req ire(./native-binding.node); f nction makeFaster() { // cheetahify *synchrono sly* calls speedy . cheetahify(f nction speedy() { throw new Error(oh no!); }); } makeFaster(); // will throw : // /home/gb sey/file.js:6 // throw new Error(oh no!); // ^ // Error: oh no! // at speedy (/home/gb sey/file.js:6:11) // at makeFaster (/home/gb sey/file.js:5:3) // at Object.anonymo s (/home/gb sey/file.js:10:1) // at Mod le._compile (mod

文档评论(0)

0520 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档