zoukankan      html  css  js  c++  java
  • 错误处理

    1.Error类的用法

     1.1用法

    throw new TypeError(name + ' must be array of strings or false')   //类型错误

     1.2.抛出Error详情错误信息

    //debugs的源码。
    function coerce(val) {
      if (val instanceof Error) return val.stack || val.message;
      return val;
    } 

    2.try/catch

    function A(a,b){
        try {
            var parse;
            var b = parse(a);
        }catch(err){
            console.log("err=",err);
            throw "router";
        }
    }
    try{
        A('6','o');
    }catch(err){
        //router
        console.log("err2=",err); //err2=router
    }

    代码就立即抛出异常。后面代码不能执行! 这个在异步调用中用的非常多。

    3.Error.captureStackTrace

    以往如果需要获知调用堆栈信息的做法是抛出一个Error对象并立即加以捕捉,通过访问该对象的stack属性来获得调用堆栈,一个简单的例子如下:

    try {
      throw new Error();
    } catch (e) {
      // e.stack 中包含了堆栈数据,可以进行处理从而忽略不感兴趣的堆栈信息
    }

    Error.captureStackTrace()可以返回调用堆栈信息,而且会更简洁、易用,也更优雅。自定义Error类的内部经常会使用该函数

    function MyError() {
      Error.captureStackTrace(this, MyError);
    }
    
    // 如果没有向captureStackTrace传递MyError参数,则在访问.stack属性时,MyError及其内部信息将会出现在堆栈信息中。当传递MyError参数时,这些信息会被忽略。
    new MyError().stack
  • 相关阅读:
    curl.class.php方便使用
    php发送邮件
    php部分被弃用方法的代替方法
    正则表达式匹配
    php xml常用函数的集合及四种方法
    PHP5中使用PDO连接数据库的方法
    http协议的状态码
    MySQL数据库中的Date,DateTime和TimeStamp类型
    php中json_decode()和json_encode()的使用方法
    UIIabel自适配高度
  • 原文地址:https://www.cnblogs.com/liuyinlei/p/6915591.html
Copyright © 2011-2022 走看看