zoukankan      html  css  js  c++  java
  • 《JavaScript高级程序设计》读书笔记(四)

    《JavaScript高级程序设计》读书笔记

    (四) 学习在浏览器中进行实际开发时的错误调试技巧。(17章)

    第十七章 错误处理与调试

    错误处理

    try-catch 语句

    try-catch 语句 和 Java 很类似。

    function testFinally(){
        try {
            return 2;
        } catch (error){
            return 1;
        } finally {
            return 0;
        }
    }
    function testWithoutFinally(){
        try {
            return 2;
        } catch (error){
            return 1;
        }
    }
    alert(testFinally());
    alert(testWithoutFinally());

    我们把可能会抛出错误的语句放到 try 语句中,处理错误的代码放到 catch 块中,finally 语句块无论如何都会执行。

    抛出错误:与 try-catch 语句相配的还有一个 throw 操作符,用于随时抛出自定义错误 。

    在遇到 throw 操作符时,代码会立即停止执行。仅当有 try-catch 语句捕获到被抛出的值时,代码才回继续执行。

    if (!(values instanceof Array)){
        throw new Error("process(): Argument must be an array.");
    }

    捕获错误的目的在于避免浏览器以默认方式处理它们;而抛出错误的目的在于提供错误发生具体原因的消息。

    常见的错误类型:类型转换错误、数据类型错误、通信错误。

    调试技术

    将消息记录到控制台:通过 console 对象向 JavaScript 控制台中写入消息。

    error(message): 将错误消息记录到控制台
    info(message): 将信息性消息记录到控制台
    log(message): 将一般消息记录到控制台
    warn(message): 将警告消息记录到控制台

    将消息记录到当前页面:在页面中开辟一小块区域,用以显示消息。

    抛出错误:自定义 assert() 函数。
    两个参数,一个是求值结果应该为true的条件,另一个是条件为false时要抛出的错误。

    function assert(condition, message){
        if (!condition){
            throw new Error(message);
        }
    }
    function divide(num1, num2){
        assert(typeof num1 == "number" && typeof num2 == "number",
                "divide(): Both arguments must be numbers.");
        return num1 / num2;
    }
    var result = divide(10, 23);
    result = divide("hi", 3);
  • 相关阅读:
    Serverless
    Kubernetes
    下一代微服务-ServiceMesh
    SOA服务治理
    微服务架构
    RPC之Thrift
    【MySQL】MySQL高可用架构之MHA
    远程通信的几种选择(RPC,Webservice,RMI,JMS的区别)
    Redis与Memcached的区别
    LVS简介
  • 原文地址:https://www.cnblogs.com/hustshu/p/14629969.html
Copyright © 2011-2022 走看看