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

宝蟾
• 阅读 2793

将消息记录到控制台

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 += "<p>" + message + "</p>";
}

抛出错误

对大型应用程序来说,自定义的错误通常使用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错误

  • 操作终止

  • 无效字符

  • 未找到成员

  • 未知运行时错误

  • 语法错误

  • 系统无法找到指定资源

点赞
收藏
评论区
推荐文章
晴空闲云 晴空闲云
3年前
javascript实践教程-02-javascript入门
本节目标1.掌握如何编写javascript代码。2.掌握javascript的3个弹框。3.掌握javascript的注释。4.掌握浏览器的调试工具控制台。内容摘要本篇介绍了如何在网页上编写js代码,如何引入外部js代码文件,js的3个弹框、注释语法,还有浏览器调试工具的控制台使用。阅读时间1520分钟。script标签如果我们需要在网页中编写
待兔 待兔
1年前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Stella981 Stella981
3年前
IE和Firefox下event乱谈
如果在使用javascript的时候涉及到event处理,就需要知道event在不同的浏览器中的差异,因为javascript的事件模型有三种,它们分别是NN4、IE4和W3C/Safari;这也造成了在不同的浏览器中处理event的差异,这里结合一些零碎的代码来说明如何做到event在IE4和Firefox下的正常工作。首先看如下代码:functi
Stella981 Stella981
3年前
JavaScript Prototype
定义和用法prototype属性使您有能力向对象添加属性和方法。实例在本例中,将展示如何使用prototype属性来向对象添加属性:<scripttype"text/javascript"functionemployee(name,job,born){this.n
Stella981 Stella981
3年前
Handler更新UI的几种方式
Handler、loop、MessageQueue的工作原理Message:Handler接收和处理的消息对象Looper:每个线程只能拥有一个looper.它的loop方法负责读取MessageQueue中的消息,读到信息之后就把消息返回给handler处理MessageQueue:消息队列。程序创建Looper对象时,会在它的构造器中创建
Stella981 Stella981
3年前
RabbitMQ指南之四:路由(Routing)和直连交换机(Direct Exchange)
 在上一章中,我们构建了一个简单的日志系统,我们可以把消息广播给很多的消费者。在本章中我们将增加一个特性:我们可以订阅这些信息中的一些信息。例如,我们希望只将error级别的错误存储到硬盘中,同时可以将所有级别(error、info、warning等)的日志都打印在控制台上。1、绑定(Bindings) 
Stella981 Stella981
3年前
JavaScript常见的10个错误
10种最常见的Javascript错误以下是JavaScript错误Top10:为了便于阅读,我们将每个错误描述都缩短了。接下来,让我们深入到每一个错误,来确定什么会导致它,以及如何避免创建它。1\.UncaughtTypeError:Cannotreadprope
JavaScript 常见错误与异常处理
一、为什么要了解常见JS错误1、调试和故障排除:了解常见的JavaScript错误可以帮助你更好地调试和故障排除代码。当你遇到错误时,能够快速识别错误类型并找到解决方法,可以节省大量的时间和精力。2、代码质量和稳定性:通过了解常见的JavaScript错误
融云IM即时通讯 融云IM即时通讯
9个月前
融云IM干货丨IM消息日志服务,如果我的App Key没有开通这项服务,我应该怎么做?
如果您的AppKey没有开通历史消息日志下载服务,您可以通过以下步骤来开通这项服务:访问开发者后台:您需要登录到融云控制台(开发者后台),这是开通服务的第一步。确认应用名称与环境:在开发者后台中,确认您的应用名称以及环境(开发/生产)是否正确无误。开启服务
融云IM即时通讯 融云IM即时通讯
7个月前
融云 IM 干货丨如何开通单群聊云存储服务?
如何开通单群聊云存储服务融云平台1、登录融云控制台:访问融云开发者文档页面,登录融云控制台。2、进入IM服务管理页面:在控制台的左侧导航栏中,选择IM服务管理。3、开通单群聊消息云端存储服务:在IM服务管理页面,找到单群聊消息云端存储服务,点击开通按钮。该
融云IM即时通讯 融云IM即时通讯
7个月前
融云 IM 干货丨单群聊云存储服务开通后,如何验证生效?
单群聊云存储服务开通后,可以通过以下几种方法验证其是否生效:1.查看控制台设置确认服务状态:登录融云控制台,进入“IM服务管理”页面,检查“单群聊消息云存储”服务是否已开启。如果已开启,服务状态应显示为“已启用”。2.发送消息并检查历史记录发送新消息:在单