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
  • 相关阅读:
    AVAudioSession
    (whh仅供自己参考)进行ip网络请求的步骤
    1、大部分社交平台接口不支持https协议。
    怎样在官网上下载xcode7.2
    ios9 http请求失败的问题
    真机测试最详细的步骤
    svn的初级使用
    framework not found -fno-arc编译错误
    单例对象
    IOS6学习笔记(三)
  • 原文地址:https://www.cnblogs.com/liuyinlei/p/6915591.html
Copyright © 2011-2022 走看看