code: public static void handleException(Throwable t) {
  
          String message;
          StackTraceElement[] trace;
          String cause = null;
          String className;
          if (t instanceof CmsRpcException) {
              CmsRpcException ex = (CmsRpcException)t;
              message = ex.getOriginalMessage();
              trace = ex.getOriginalStackTrace();
              cause = ex.getOriginalCauseMessage();
              className = ex.getOriginalClassName();
          } else {
              message = CmsClientStringUtil.getMessage(t);
              trace = t.getStackTrace();
              if (t.getCause() != null) {
                  cause = CmsClientStringUtil.getMessage(t.getCause());
              }
              className = t.getClass().getName();
          }
          // send the ticket to the server
          String ticket = CmsLog.log(message + LINE_BREAK + CmsClientStringUtil.getStackTraceAsString(trace, LINE_BREAK));
  
          String errorMessage = message == null
          ? className + ": " + Messages.get().key(Messages.GUI_NO_DESCIPTION_0)
          : message;
          if (cause != null) {
              errorMessage += LINE_BREAK + Messages.get().key(Messages.GUI_REASON_0) + ":" + cause;
          }
  
          String details = Messages.get().key(Messages.GUI_TICKET_MESSAGE_3, ticket, className, message)
              + CmsClientStringUtil.getStackTraceAsString(trace, LINE_BREAK);
          new CmsErrorDialog(errorMessage, details).center();
      }
docs: Handles the exception by logging the exception to the server log and displaying an error dialog on the client.<p>
  
  @param t the throwable