zoukankan      html  css  js  c++  java
  • JS里try...catch...finally详解,以及console日志调试(console.log、console.info等)

    <!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>测试页面</title>
        <script type="text/javascript">
            /*
                Error具有下面一些主要属性
                description: 错误描述 (仅IE可用).
                fileName: 出错的文件名 (仅Mozilla可用).
                lineNumber: 出错的行数 (仅Mozilla可用).
                message: 错误信息 (在IE下同description)
                name: 错误类型.
                number: 错误代码 (仅IE可用).
                stack: 像Java中的Stack Trace一样的错误堆栈信息 (仅Mozilla可用).
            */
            try {
                clear();
                //throw new Error("Whoops!");
            }
            catch (e) {
                /*除了console.log(),Firebug还支持多种不同的日志级别:debug、info、warn、error*/
                console.log(e.name)
                console.log(e.message)
                /*
    				现总结Error.name的六种值对应的信息:
    				1. EvalError:eval()的使用与定义不一致
    				2. RangeError:数值越界
    				3. ReferenceError:非法或不能识别的引用数值
    				4. SyntaxError:发生语法解析错误
    				5. TypeError:操作数类型错误
    				6. URIError:URI处理函数使用不当
                */
                if (e instanceof EvalError) {  //Eval错误
                    alert(e.name + ":" + e.message);
                }
                else if (e instanceof ReferenceError) {  //引用错误
                    alert(e.name + ": " + e.message);
                }
            }
            finally {
                console.info("无论 try / catch 的结果如何都会执行");
            }
    
            try {
                throw new Date(); // 抛出当前时间对象
            }
            catch (e) {
                console.info(e.name);
                console.info(e.toLocaleString()); // 使用本地格式显示当前时间
            }
    
        </script>
    </head>
    <body>
    
    </body>
    </html>
    <!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>其它一些例子</title>
        <script type="text/javascript">
            try {
                console.info([1, 2, 3].toString()); //显示   1,2,3
    
                var a = 2..toString();  //(2).toString()  两种方式都是正确的
                console.info(a);
    
                var foo = { name: 'kitten' }
                console.log(foo.name); // kitten
                console.log(foo['name']); // kitten
    
                /*
                    从对象中移除属性的唯一方法是使用“删除运算符”;
                    将属性设置为未定义或NULL只移除与属性相关的值,但不移除键。
                */
                var obj = {
                    bar: 1,
                    foo: 2,
                    baz: 3
                };
                obj.bar = undefined;
                obj.foo = null;
                delete obj.baz;
    
                for (var i in obj) {
                    if (obj.hasOwnProperty(i)) {
                        console.log(i, '' + obj[i]);
                    }
                }
    
                //打印0-9
                for (var i = 0; i < 10; i++) {
                    setTimeout(function (e) {
                        console.log(e);
                    }, 1000, i);
                }
                /*  undefined
                    下面是一些返回值未定义(undefined)的例子:
                    访问未修改的全局变量未定义。
                    访问已声明但尚未初始化的变量。
                    由于缺少返回语句的函数的隐式返回。
                    不显式返回任何语句的返回语句.。
                    不存在的属性查找。
                    没有任何显式值传递的函数参数.。
                    已设置为未定义值的任何。
                    无效表达式(表达式)
                */
    
                //delte删除
                var obj = { x: 1 };
                obj.y = 2;
                delete obj.x; // true
                delete obj.y; // true
                console.log(obj.x); // undefined
                console.log(obj.y); // undefined
            } catch (e) {
                console.error(e.name);
                console.error(e.message);
            }
        </script>
    </head>
    <body>
    
    </body>
    </html>


  • 相关阅读:
    计算机算法设计与分析之棋盘覆盖问题
    在uboot里面加入环境变量使用run来运行
    软件project师的属性与发展
    Oracle 表三种连接方式(sql优化)
    POJ 1700 cross river (数学模拟)
    八:Java之I/O
    为 Python Server Pages 和 Oracle 构建快速 Web 开发环境。
    WebBot
    WebBrowserProgramming
    Skulpt
  • 原文地址:https://www.cnblogs.com/smartsmile/p/6234027.html
Copyright © 2011-2022 走看看