e.s.java.lang.Throwable Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of javaee-rt Show documentation
Show all versions of javaee-rt Show documentation
An Execution Environment for Java SCOREs
package e.s.java.lang;
import i.RuntimeAssertionError;
/**
* All the exceptions in the guest environment need to be wrapped by something which is _actually_ a java.lang.Throwable.
* When we need to look up the wrapper for a given type, we will prepend "e." to its qualified name.
* Hence, this is the root of that entire hierarchy since all exceptions eventually reach back to "java.lang.Throwable".
*
* NOTE: The java.lang.* exception types have 3 occurrences, and this should be explained:
* -"java.lang.*" - These are the real types and are only generated by the JVM. We wrap them with a shadow object, as soon as we can.
* -"org.aion.avm.java.lang.*" - These are shadow objects which we actually pass around and which can be accessed by the guest code.
* -"e.java.lang.*" - These are just temporary wrappers of the shadow objects which only exist to satisfy
* throw/catch semantics.
* Only the "org.aion.avm.java.lang.*" instances are ever touched by user code.
*
* The sub-classes of this are generated, since all sub-classes contain just the single unwrappable object.
*/
public class Throwable extends java.lang.Throwable {
private static final long serialVersionUID = 1L;
private final Object wrapped;
public Throwable(Object wrapped) {
// There is no way that this should be created with a null.
RuntimeAssertionError.assertTrue(null != wrapped);
this.wrapped = wrapped;
}
public Object unwrap() {
return this.wrapped;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy