+1 on eliminating `SkinManagerException` and just using `RuntimeException`s.  @drewwills 's analysis is exactly my thinking -- invent custom exceptions where differential custom catching and handling is required.  If you're just going to `catch Exception` and generically cope with any problem that came up -- and often that's a good strategy -- then no need for the custom exception.