public boolean catchUncaught(UncaughtException e) {
        if (exceptionHandler != null) {
            try {
                if (!(e.getException() instanceof FinallyException)) {
                    exceptionHandler.onException(this, e.getException());
                }
            } catch (BaseBaseException _e) {
                catchUncaught(_e);
            } catch (Throwable throwable) {
                throw new RuntimeException(throwable);
            }
            return true;
        } else
            return false;
    }
Remove all method which does not destruct

@throws Throwable
jphp-runtime/src/php/runtime/env/Environment.java