How to use the catchClause function from babel-types

Find comprehensive JavaScript babel-types.catchClause code examples handpicked from public code repositorys.

254
255
256
257
258
259
260
261
262
263
`report`是处理异常的`handler`函数,实际运用的时候,应该开放给用户自定义。拿到`catch`里面的内容后,我们就可以根据`babel-types`去生成`catch`里面的内容了。

> 这里我是直接通过var temp = code的方式去生成一个函数表达式,然后来获取函数体里面的body节点,你当然也可以直接根据函数生成AST节点,然后去获取这个函数节点的body节点,不过你要考虑不同情况的函数定义,获取body的方式不同

```js
let catchClause = types.catchClause(types.identifier('error'), 
// 第一个值是我们生成的包含行列以及函数名的变量
// 第二个值是handler的内容
types.blockStatement(
    [infoDeclarator, catchBody.body[0]]
fork icon6
star icon14
watch icon2

+ 23 other calls in file

10
11
12
13
14
15
16
17
18
19
    (element.expression.callee.property.name == 'insertTimepoint' ||
      element.expression.callee.property.name == 'insertBreakpoint')
  );
};

const catchClause = t.catchClause(
  t.identifier('e'),
  t.blockStatement(
    [
      t.ifStatement(
fork icon2
star icon5
watch icon3

+ 7 other calls in file

27
28
29
30
31
32
33
34
35
36
  return;
}

// 把一个JS字符串转成一个AST节点
let catchStatement = template.statement('console.log(error)')();
let catchClause = types.catchClause(types.identifier('error'), types.blockStatement([catchStatement]));
// node.body就是原来的函数里的语句,现在要放到try里面
let tryStatement = types.tryStatement(node.body, catchClause);
// 新的函数方法名不变sum,参数不变 a,b
var func = types.functionDeclaration(id, node.params, types.blockStatement([
fork icon0
star icon0
watch icon0

96
97
98
99
100
101
102
103
104
105
            ),
        ])
    ),
]);

var catchClause = types.catchClause(
    types.identifier("error"),
    types.blockStatement([infoDeclaration].concat(catchBody.body))
);
var tryStatement = types.tryStatement(blockStatement, catchClause);
fork icon0
star icon0
watch icon0

Other functions in babel-types

Sorted by popularity

function icon

babel-types.identifier is the most popular function in babel-types (4076 examples)