Your own Exception is a class, derived from another class. Have a look at Exception in the docs. If you find an appropriate parent in the list of exceptions (this needs some experience), you may extend that specific Exception. If you need this exception only in one class, you may make it an inner class.
But Joshua Bloch claims to favor Standardexceptions, where they fit. So you could throw the NullpointerException that way:
But isn't a null-Pointer-Ex thrown anyway? So why catch it? You may catch it, to give a more informative message, so the user may learn for the next time. But you can do better. You may test for (length < 1), and have the input in a loop:
Conclusio: If you can catch the exception, and solve the problem, solve it as early as possible. If you can not solve it be informative about the semantic of the error. Perhaps the user may solve it. Use StandardExceptions where appropriate.