This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
You can always throw anything which is throwable from your code. Throwable is at the top of the hierachy. So in this way you can throw any exception of error you want from your code and also catch the same. But it is recomonded that you only throw exception or error which is more relevant and easy to understand during debuging.