code: public boolean isThrowable() {
          if (isEnum() || isInterface() || isAnnotationType()) {
              return false;
          }
          for (Type t = type; t.hasTag(CLASS); t = env.types.supertype(t)) {
              if (t.tsym == env.syms.throwableType.tsym) {
                  return true;
              }
          }
          return false;
      }
docs: Return true if this is a throwable class