Debugging JavaScript:throw与console

我想没多少人敢保证写JavaScript能不用调试,那选择用什么方式调试会比较好呢?

  • 告别了我最爱的alert("MM")
  • 告别了我最爱的document.title="MM"
  • 告别了我最爱的window.status="MM"

大家开始用各种新的方式来看调试信息。。。比如最近sitepoint就发了一篇Debugging JavaScript: Throw Away Your Alerts!,大家先去看,看完再回来接着看。

var err = new Error(); 
err.name = 'My API Input Error'; 
err.message = 'Input must be a number'; 
throw(err);

throw虽然不错,但是我们调试时可能不只能抛错,还可能抛很多奇怪的信息,比如把执行时间、返回结果打出来看,当然,你也可以写不同的err.name来区分。但是,有事没事看到报错也是很不爽的一件事。

写JavaScript的同学应该都有装Firebug,如果没装赶快装去,装完了再回来看,要是连Firefox都没有就玩Firebug Lite

Firebug提供有了个console,你可以用:console.log(object[, object, ...])和若干console.xxx来玩,这样就可以把错误跟警告区分开了,挖哈哈。

同时,console并不是Firebug独有的,你也可以用console.log('嗷嗷又出来忽悠人了!');把信息打到Safari的错误控制台,还可以这样玩:

  • console.warn('这个图标很黄');
  • console.error('×的图标不好看');

Opera也有个错误控制台,可惜不能用console.log来显示东东,不过也有打印的接口: opera.postError,但它打出的的图标却不是错误的图标,它的真名应该叫postWarn,throw打出来的图标才是错误的图标,它才是真正的postError,算了,凑和着用吧。如果在Opera下做开发推荐使用Opera Dragonfly

还有IE呢?嗯,介于我的系统没有IE,飘过。挖哈哈。

其实大家可以自己写个Console,除了可以把东东打印到浏览器的错误控制台上,还可以把信息打印到服务器上,在自己调试环境下没问题不代表在任何情况下都会没问题。

This entry was posted in Web开发 and tagged , , . Bookmark the permalink.

10 Responses to Debugging JavaScript:throw与console

  1. AlloVince @ 2008-08-25 at 08:31
  2. MacJi @ 2008-08-25 at 09:01

    IE有Companion.JS,可以定位错误。飘过。

  3. 锐风 @ 2008-08-25 at 10:11

    抢地盘最重要.

  4. 锐风 @ 2008-08-25 at 10:14

    好烂一片文啊. 哇哈哈.

  5. cloudchen @ 2008-08-25 at 14:17

    的确有那么点烂

  6. 蒴男 @ 2008-08-29 at 10:16

    哈哈,aoao厉害,这文章其实对调试非常有意义的

  7. liuzhongshu @ 2008-08-31 at 13:10

    用opera.postError会不会导致代码在其他浏览器下运行出错呢?

  8. aoao @ 2008-09-02 at 00:49

    @liuzhongshu 会的。可以先判断一下是否是opera

  9. winter @ 2008-11-13 at 16:34

    aoao 你又欺负我家小IE了罢 真不听话!

  10. 落Nicety @ 2008-11-16 at 00:12

    有个东西叫log4js
    http://log4js.sourceforge.net/
    可是调试js的 ff等可以打在控制台里 ie可以打在新标签页或新窗口里

发表评论

(必填)

(必填)