code: private static LSException createLSException(short code, Throwable cause) {
          LSException lse = new LSException(code, cause != null ? cause.getMessage() : null);
          if (cause != null && ThrowableMethods.fgThrowableMethodsAvailable) {
              try {
                  ThrowableMethods.fgThrowableInitCauseMethod.invoke(lse, new Object [] {cause});
              }
              // Something went wrong. There's not much we can do about it.
              catch (Exception e) {}
          }
          return lse;
      }
docs: Creates an LSException. On J2SE 1.4 and above the cause for the exception will be set.