• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Java ThrowNode类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Java中jdk.nashorn.internal.ir.ThrowNode的典型用法代码示例。如果您正苦于以下问题:Java ThrowNode类的具体用法?Java ThrowNode怎么用?Java ThrowNode使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



ThrowNode类属于jdk.nashorn.internal.ir包,在下文中一共展示了ThrowNode类的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。

示例1: throwStatement

import jdk.nashorn.internal.ir.ThrowNode; //导入依赖的package包/类
/**
 * ThrowStatement :
 *      throw Expression ; // [no LineTerminator here]
 *
 * See 12.13
 *
 * Parse throw statement.
 */
private void throwStatement() {
    // Capture THROW token.
    final int  throwLine  = line;
    final long throwToken = token;
    // THROW tested in caller.
    nextOrEOL();

    Expression expression = null;

    // SEMICOLON or expression.
    switch (type) {
    case RBRACE:
    case SEMICOLON:
    case EOL:
        break;

    default:
        expression = expression();
        break;
    }

    if (expression == null) {
        throw error(AbstractParser.message("expected.operand", type.getNameOrType()));
    }

    endOfLine();

    appendStatement(new ThrowNode(throwLine, throwToken, finish, expression, false));
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:38,代码来源:Parser.java


示例2: enterThrowNode

import jdk.nashorn.internal.ir.ThrowNode; //导入依赖的package包/类
@Override
public boolean enterThrowNode(final ThrowNode throwNode) {
    enterDefault(throwNode);

    type("ThrowStatement");
    comma();

    property("argument");
    throwNode.getExpression().accept(this);

    return leave();
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:13,代码来源:JSONWriter.java


示例3: enterThrowNode

import jdk.nashorn.internal.ir.ThrowNode; //导入依赖的package包/类
@Override
public boolean enterThrowNode(final ThrowNode throwNode) {
    if(!reachable) {
        return false;
    }

    throwNode.getExpression().accept(this);
    jumpToCatchBlock(throwNode);
    doesNotContinueSequentially();
    return false;
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:12,代码来源:LocalVariableTypesCalculator.java


示例4: enterThrowNode

import jdk.nashorn.internal.ir.ThrowNode; //导入依赖的package包/类
@Override
public boolean enterThrowNode(final ThrowNode throwNode) {
    if(!reachable) {
        return false;
    }

    visitExpressionOnEmptyStack(throwNode.getExpression());
    jumpToCatchBlock(throwNode);
    doesNotContinueSequentially();
    return false;
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:12,代码来源:LocalVariableTypesCalculator.java


示例5: throwStatement

import jdk.nashorn.internal.ir.ThrowNode; //导入依赖的package包/类
/**
 * ThrowStatement :
 *      throw Expression ; // [no LineTerminator here]
 *
 * See 12.13
 *
 * Parse throw statement.
 */
private void throwStatement() {
    // Capture THROW token.
    final int  throwLine  = line;
    final long throwToken = token;
    // THROW tested in caller.
    nextOrEOL();

    Expression expression = null;

    // SEMICOLON or expression.
    switch (type) {
    case RBRACE:
    case SEMICOLON:
    case EOL:
        break;

    default:
        expression = expression();
        break;
    }

    if (expression == null) {
        throw error(AbstractParser.message("expected.operand", type.getNameOrType()));
    }

    endOfLine();

    appendStatement(new ThrowNode(throwLine, throwToken, finish, expression, 0));
}
 
开发者ID:RedlineResearch,项目名称:OLD-OpenJDK8,代码行数:38,代码来源:Parser.java


示例6: enterThrowNode

import jdk.nashorn.internal.ir.ThrowNode; //导入依赖的package包/类
@Override
public boolean enterThrowNode(final ThrowNode throwNode) {
    lineNumber(throwNode);

    if (throwNode.isSyntheticRethrow()) {
        //do not wrap whatever this is in an ecma exception, just rethrow it
        load(throwNode.getExpression());
        method.athrow();
        return false;
    }

    method._new(ECMAException.class).dup();

    final Source source     = lc.getCurrentFunction().getSource();

    final Expression expression = throwNode.getExpression();
    final int        position   = throwNode.position();
    final int        line       = throwNode.getLineNumber();
    final int        column     = source.getColumn(position);

    load(expression, Type.OBJECT);

    method.load(source.getName());
    method.load(line);
    method.load(column);
    method.invoke(ECMAException.THROW_INIT);

    method.athrow();

    return false;
}
 
开发者ID:RedlineResearch,项目名称:OLD-OpenJDK8,代码行数:32,代码来源:CodeGenerator.java


示例7: enterThrowNode

import jdk.nashorn.internal.ir.ThrowNode; //导入依赖的package包/类
@Override
public boolean enterThrowNode(final ThrowNode throwNode) {
    lineNumber(throwNode);

    if (throwNode.isSyntheticRethrow()) {
        //do not wrap whatever this is in an ecma exception, just rethrow it
        load(throwNode.getExpression());
        method.athrow();
        return false;
    }

    method._new(ECMAException.class).dup();

    final Source source     = lc.getCurrentFunction().getSource();

    final Expression expression = throwNode.getExpression();
    final int        position   = throwNode.position();
    final int        line       = throwNode.getLineNumber();
    final int        column     = source.getColumn(position);

    load(expression);
    assert expression.getType().isObject();

    method.load(source.getName());
    method.load(line);
    method.load(column);
    method.invoke(ECMAException.THROW_INIT);

    method.athrow();

    return false;
}
 
开发者ID:wro4j,项目名称:nashorn-backport,代码行数:33,代码来源:CodeGenerator.java


示例8: enterThrowNode

import jdk.nashorn.internal.ir.ThrowNode; //导入依赖的package包/类
@Override
public boolean enterThrowNode(final ThrowNode node) {
    node.toString(sb, printTypes);
    printLocalVariableConversion(node);
    return false;
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:7,代码来源:PrintVisitor.java


示例9: leaveThrowNode

import jdk.nashorn.internal.ir.ThrowNode; //导入依赖的package包/类
@Override
public Node leaveThrowNode(final ThrowNode throwNode) {
    return addStatement(throwNode); //ThrowNodes are always terminal, marked as such in constructor
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:5,代码来源:Lower.java


示例10: enterThrowNode

import jdk.nashorn.internal.ir.ThrowNode; //导入依赖的package包/类
@Override
public boolean enterThrowNode(final ThrowNode throwNode) {
    if(!method.isReachable()) {
        return false;
    }
    enterStatement(throwNode);

    if (throwNode.isSyntheticRethrow()) {
        method.beforeJoinPoint(throwNode);

        //do not wrap whatever this is in an ecma exception, just rethrow it
        final IdentNode exceptionExpr = (IdentNode)throwNode.getExpression();
        final Symbol exceptionSymbol = exceptionExpr.getSymbol();
        method.load(exceptionSymbol, EXCEPTION_TYPE);
        method.checkcast(EXCEPTION_TYPE.getTypeClass());
        method.athrow();
        return false;
    }

    final Source     source     = getCurrentSource();
    final Expression expression = throwNode.getExpression();
    final int        position   = throwNode.position();
    final int        line       = throwNode.getLineNumber();
    final int        column     = source.getColumn(position);

    // NOTE: we first evaluate the expression, and only after it was evaluated do we create the new ECMAException
    // object and then somewhat cumbersomely move it beneath the evaluated expression on the stack. The reason for
    // this is that if expression is optimistic (or contains an optimistic subexpression), we'd potentially access
    // the not-yet-<init>ialized object on the stack from the UnwarrantedOptimismException handler, and bytecode
    // verifier forbids that.
    loadExpressionAsObject(expression);

    method.load(source.getName());
    method.load(line);
    method.load(column);
    method.invoke(ECMAException.CREATE);

    method.beforeJoinPoint(throwNode);
    method.athrow();

    return false;
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:43,代码来源:CodeGenerator.java


示例11: leaveThrowNode

import jdk.nashorn.internal.ir.ThrowNode; //导入依赖的package包/类
@Override
public Node leaveThrowNode(final ThrowNode throwNode) {
    weight += THROW_WEIGHT;
    return throwNode;
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:6,代码来源:WeighNodes.java


示例12: enterThrowNode

import jdk.nashorn.internal.ir.ThrowNode; //导入依赖的package包/类
@Override
public boolean enterThrowNode(final ThrowNode throwNode) {
    curStat = new ThrowTreeImpl(throwNode,
            translateExpr(throwNode.getExpression()));
    return false;
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:7,代码来源:IRTranslator.java


示例13: ThrowTreeImpl

import jdk.nashorn.internal.ir.ThrowNode; //导入依赖的package包/类
ThrowTreeImpl(final ThrowNode node, final ExpressionTree expr) {
    super(node);
    this.expr = expr;
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:5,代码来源:ThrowTreeImpl.java



注:本文中的jdk.nashorn.internal.ir.ThrowNode类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Java Attribute类代码示例发布时间:2022-05-22
下一篇:
Java LogUtils类代码示例发布时间:2022-05-22
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap