if (tex instanceof SyntaxError) { Help.getInfo(cx).usage();
if (tex instanceof SyntaxErrorException) { try { Help.getInfo(cx).usage(); } catch (HelpException ex1) {  ex1.printStackTrace(); }
        public void run() {            try {                //                System.err.println("Registering shell in new thread.");                ShellUtils.getShellManager().registerShell(commandShell);//workaround                // to                // ensure                // access                // to                // the                // command                // shell                // in                // this                // new                // thread?                try {                    AccessController.doPrivileged(new InvokeAction(method,                            null, args));                } catch (PrivilegedActionException ex) {                    throw ex.getException();                }                if (!isBlocking()) {                    //somebody already hit ctrl-c.                } else {                    finished = true;                    //                    System.err.println("Finished invocation, notifying                    // blockers.");                    //done with invoke, stop waiting for a ctrl-c                    unblock();                }            } catch (InvocationTargetException ex) {                Throwable tex = ex.getTargetException();                if (tex instanceof SyntaxError) {                    Help.getInfo(cx).usage();                    err.println(tex.getMessage());                    unblock();                } else {                    err.println("Exception in command");                    tex.printStackTrace(err);                    unblock();                }            } catch (Exception ex) {                err.println("Exception in command");                ex.printStackTrace(err);                unblock();            }            finished = true;        }