资讯专栏INFORMATION COLUMN

JavaScript 错误处理与调试——“调试技术与常见的IE错误”的注意要点

GT / 3419人阅读

摘要:将消息记录到控制台和来说,可通过对象向控制台中写入消息。如常见的错误操作终止无效字符未找到成员未知运行时错误语法错误系统无法找到指定资源

将消息记录到控制台 console

IE8、Firefox、Chrome和Safari来说,可通过console对象向JavaScript控制台中写入消息。对象有下列方法:

error(message):将错误消息记录到控制台

info(message):将信息消息记录到控制台

log(message):将一般消息记录到控制台

warn(message):将警告消息记录到控制台

如:

console.log("loging");
console.info("infomation");
console.warn("warning");
console.error("bug");

Opera10.5 之前的版本可以通过opera.postError()接收一个参数输出任何信息。

Java

还有一种方案是使用LiveConnect,也就是JavaScript中运行Java代码。

LiveConnect

向JavaScript控制台写入消息的统一接口:

function log(message) {
    if (typeof console == "object") {
        console.log(message);
    } else if (typeof opera == "object") {
        opera.postError(message);
    } else if (typeof java == "object" && typeof java.lang == "object") {
        java.lang.System.out.println(message);
    }
}
将消息记录到当前页面

这种方法针对IE7等不支持JavaScript控制台的浏览器十分有用:

function log(message) {
    var console = document.getElementById("debuginfo");
    if (console === null) {
        console = document.createElement("div");
        console.id = "debuginfo";
        document.body.appendChild(console);
    }
    console.innerHTML += "

" + message + "

"; }
抛出错误

对大型应用程序来说,自定义的错误通常使用assert()函数抛出。对这个函数接受两个参数,一个是求值结果为true的条件,另一个是条件为false时要抛出的错误。

function assert(condition, message) {
    if (!condition) {
        throw new Error(message);
    }
}

如:

function assert(condition, message) {
    if (!condition) {
        throw new Error(message);
    }
}

function sum(num1, num2) {
    assert((typeof num1 == "number") && (typeof num2 == "number"), "divide(): Both arguments must be numbers.");
    console.log(num1 + num2);
}

sum(321, "abc"); //Uncaught Error: divide(): Both arguments must be numbers.
常见的IE错误

操作终止

无效字符

未找到成员

未知运行时错误

语法错误

系统无法找到指定资源

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/78703.html

相关文章

  • JavaScript 错误处理调试——“错误处理注意要点

    摘要:使用函数发生异常时抛出。数值超出相应范围时抛出。抛出错误与相配的还有一个操作符,用于抛出自定义错误。错误事件没有通过处理的错误都会触发对象的事件。任何浏览器中,事件处理程序都不会创建对象,但它可以接受个参数错误消息错误所在的和行号。 try-catch语句 该语句最适合处理那些我们无法控制的错误,在明明白白地知道自己的代码会发生错误时,再使用该语句就不太合适了。 ECMA-262第3...

    draveness 评论0 收藏0
  • JavaScript JavaScriptXML——“XML DOM”注意要点

    摘要:如发生解析错误时,仍然会从中返回一个对象。但这个对象的文档元素是对象根元素第一个子元素为。 DOM2级核心 docuent.implementation中引入了createDocument()方法,IE9支持该方法,如: var xmldom = document.implementation.createDocument(namespaceUri, root, doctype); ...

    melody_lql 评论0 收藏0
  • JavaScript JavaScriptXML——“XML DOM”注意要点

    摘要:如发生解析错误时,仍然会从中返回一个对象。但这个对象的文档元素是对象根元素第一个子元素为。 DOM2级核心 docuent.implementation中引入了createDocument()方法,IE9支持该方法,如: var xmldom = document.implementation.createDocument(namespaceUri, root, doctype); ...

    figofuture 评论0 收藏0
  • JavaScript AjaxComet——“进度事件”注意要点

    摘要:有以下个进度事件在接收到响应数据的第一个字节时触发。在接收响应数据期间持续的触发在请求发生错误时触发在因调用方法而终止连接时触发在接收到完整的响应数据时触发在通信完成或者触发,,事件后触发。 有以下6个进度事件: loadstart: 在接收到响应数据的第一个字节时触发。 progress: 在接收响应数据期间持续的触发 error: 在请求发生错误时触发 abort: 在因调用ab...

    ad6623 评论0 收藏0
  • JavaScript AjaxComet——“跨源资源共享”注意要点

    摘要:注意请求和响应都不包含信息。对象的安全机制部分实现了的规范。请求返回后会触发事件,响应数据保存在属性中。无论是同源请求还是跨域请求,对于本地资源最好使用相对,在访问远程资源时再使用绝对。发送请求之后,服务器决定是否允许这种类型的请求。 通过XHR实现Ajax通信的一个主要限制,来源于跨域安全策略。在默认情况下,Ajax只能访问与包含它的页面位于同一个域中的资源。但是有时也需要一些跨域的...

    haobowd 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<