ThrowException.java

  1. /*
  2.  * Copyright (c) 2013, 2014 Oracle and/or its affiliates. All rights reserved. This
  3.  * code is released under a tri EPL/GPL/LGPL license. You can use it,
  4.  * redistribute it and/or modify it under the terms of the:
  5.  *
  6.  * Eclipse Public License version 1.0
  7.  * GNU General Public License version 2
  8.  * GNU Lesser General Public License version 2.1
  9.  */
  10. package org.jruby.truffle.runtime.control;

  11. import com.oracle.truffle.api.nodes.ControlFlowException;

  12. /**
  13.  * Controls throwing a value. Note that throwing is different to raising in Ruby, which is the
  14.  * reason we have both {@link ThrowException} and {@link RaiseException}.
  15.  */
  16. public class ThrowException extends ControlFlowException {

  17.     private final Object tag;
  18.     private final Object value;

  19.     public ThrowException(Object tag, Object value) {
  20.         this.tag = tag;
  21.         this.value = value;
  22.     }

  23.     public Object getTag() {
  24.         return tag;
  25.     }

  26.     public Object getValue() {
  27.         return value;
  28.     }

  29.     private static final long serialVersionUID = 8693305627979840677L;

  30. }