【问题标题】:Javascript - Exception/Error data type?Javascript - 异常/错误数据类型?
【发布时间】:2015-02-19 04:02:20
【问题描述】:
try {
  example.example = example;
}  catch (err) {
  TraceError.sysout("Error test!", err);
}

在上面的代码段中,由于未定义示例,因此我强制出错。我目前正在学习 javascript,想知道在 javascript 中是否会出现什么类型的错误。这种语言中是否存在 Error 对象或 Exception 对象,有没有办法获取有关该 err 对象的信息,以便我可以在我的 .sysout 方法中打印详细消息?

【问题讨论】:

  • 您可以勾选添加alertconsole并在浏览器的Firebug中查看或在浏览器中添加breakpoint
  • 当我做console.log(typeof(err))时,我只看到'object'
  • console.log(err)。那会返回对象吗?
  • 是的,它返回对象。我认为在 try/catch 语句中捕获的任何异常都将是特定类型,而不仅仅是对象。
  • 目标是在进行任何日志记录之前验证 err 对象是错误/异常类型

标签: javascript exception error-handling exception-handling


【解决方案1】:

使用 console.log 或 console.dir

 try {
     example.example = example;
  }  catch (err) {
    console.dir(err);
    console.log("Error Message!", err.message);
    console.log("Stack Trace" , err.stack);
 }

在这种情况下,如果您查看控制台,您会注意到错误类型是“ReferenceError”。

因此,每个异常都有一个类型。

尝试这样做,你会得到以下结果:

 var x = undefined;
 x.myproperty= 0
 TypeError: Cannot set property 'myproperty' of undefined

 myfaultySyntax'
 SyntaxError: Unexpected token ILLEGAL

等等!希望这会有所帮助并给您一个想法。

【讨论】:

    【解决方案2】:

    JavaScript 确实有一个标准的内置错误对象,可用于创建和记录错误。

    发生运行时错误时会抛出 Error 对象的实例(JavaScript 提供了一些内置的标准错误类型)。您还可以将错误对象用作“用户定义的异常”的基础对象。

    完整的文档可以参考以下链接:

    'https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error'

    希望答案有所帮助。

    (另外通过查看问题中 try 块中的代码,我假设您熟悉面向对象编程。)

    【讨论】:

      猜你喜欢
      • 2018-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-01
      • 2017-09-30
      • 2015-11-08
      相关资源
      最近更新 更多