This isn't really the right place to ask that question. We have a forum dedicated to Java In General (beginner) questions. When you ask a question in the most appropriate forum, not only are you more likely to get an answer, you'll probably get a better quality answer, since that's where the experts on the subject will be looking. Also, it keeps from cluttering other forums with questions that don't pertain to the forum topic.
But, for a short answer: Throwable is the root of all sequence-interrupting events, including java.lang.Exception. Usually, application developers will want to subclass java.lang.Exception. For more details, I encourage you to ask the folks in the Java In General forum.
Customer surveys are for companies who didn't pay proper attention to begin with.
Generally, when you create your own exception class, you should either subclass Exception (if you want a checked exception) or RuntimeException (if you want an unchecked exception). Throwable is the superclass for all exceptions and errors and should not be subclassed directly.