in lib/generator.js [3240:3274]
visitThrow(ast, level, env) {
if (ast.expr.type === 'construct_model') {
this.emit(`_err ${env.yieldFunc ? ':' : ''}= `, level);
this.visitConstructModel(ast.expr, level, env);
this.emit('\n');
} else {
this.emit(`_err ${env.yieldFunc ? ':' : ''}= dara.NewSDKError(`, level);
this.visitObject(ast.expr, level, env, 'map[string]interface{}');
this.emit(')\n');
}
if(env.runtimeBody && !this.noCompatible) {
this.emit(`if dara.BoolValue(client.DisableSDKError) != true {\n`, level);
this.emit(`_err = dara.TeaSDKError(_err)\n`, level + 1);
this.emit(`}\n`, level);
}
if(env.try) {
const tryStmt = env.try;
env.try = null;
this.visitCatch(tryStmt, level, env);
} else if (!env.returnType) {
this.emit(`return _err\n`, level);
} else if (_name(env.returnType) === 'void') {
if(env.yieldFunc){
this.emit(`_yieldErr <- _err\n`, level);
this.emit(`return\n`, level);
} else if (env.hasThrow) {
this.emit(`return _err\n`, level);
} else {
this.emit(`return\n`, level);
}
} else {
this.emit(`return _result, _err\n`, level);
}
}