2
0

Exception.hx 752 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. package jvm;
  2. @:keep
  3. @:native('haxe.jvm.Exception')
  4. class Exception<T> extends java.lang.Exception {
  5. static public var exception = new java.lang.ThreadLocal<java.lang.Throwable>();
  6. static public function setException(exc:java.lang.Throwable) {
  7. exception.set(exc);
  8. }
  9. static public function currentException() {
  10. return exception.get();
  11. }
  12. public var value:T;
  13. public function new(value:T) {
  14. super();
  15. this.value = value;
  16. }
  17. @:overload override public function toString() {
  18. return Std.string(value);
  19. }
  20. public function unwrap() {
  21. return value;
  22. }
  23. static public function wrap<T>(t:Null<T>) {
  24. if (Jvm.instanceof(t, java.lang.Exception)) {
  25. return (cast t : java.lang.Exception);
  26. } else {
  27. return new Exception(t);
  28. }
  29. }
  30. }