将消息记录到控制台
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错误
操作终止
无效字符
未找到成员
未知运行时错误
语法错误
系统无法找到指定资源
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。