将音讯记录到掌握台
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毛病
操纵停止
无效字符
未找到成员
未知运转时毛病
语法毛病
体系没法找到指定资本