Error.captureStackTrace

Test JavaScriptStackTraceApi of V8 Engine

HTML

<!--
https://code.google.com/p/v8/wiki/JavaScriptStackTraceApi
supported by JavaScript V8 Engine
Error.captureStackTrace
-->
<pre id="stack"></pre>
<pre id="loc"></pre>

JavaScript

<script type=”text/javascript”>
function reportError(err){
    var errMsg = [];
    for(var p in err){
        if(err.hasOwnProperty(p)){
            errMsg.push(p + "=" + err[p]);
        }
    }
    alert(errMsg.join("\n"));
}
function doSomething(){
    var lastErrorHandler = window.onerror;
    window.onerror = function(message, url, line){
        // 汇报错误
        reportError({
            message: message,
            url: url,
            line: line
        });
        window.onerror = lastErrorHandler;
        // 不希望此错误继续扩散
     return true;
    }
     
    // 不小心出错了...
    sldfjlskdjflj;
     
    window.onerror = lastErrorHandler;        
}
try{
    // 执行可能出错的代码
   doSomething();
}catch(e){
    if("\v"=="v"){
        // 对于IE直接让此错误扩散到最外层
        throw e;
    }else{
        // 对于其他任意浏览器直接汇报此异常对象
        reportError(e);
    }
}
</script>