"java.lang.VerifyError" are worst. VerifyError means that the class file contains bytecode that is syntactically correct but violates some semantic restriction e.g. a jump target that crosses method boundaries.
Some of the reasons for getting VerifyError are,
-> If the bytecode size of your method exceeds the 64kb limit
-> When the class file gets corrupted in some other way (e.g. through faulty RAM or a failing HD).