I think the main problem that I saw with that is that if sanityCheck changes its mind about what is an error and what is warning you have to shuffle the class hierarchy around.
If your class hierarchy isn't especially deep, I think it will be okay. I was imagining something like this:
StorageError SanityException SanityError LUKSDeviceWithoutKeyError ... more stuff here ... SanityWarning ... more stuff here ...
- Chris