It's often to use a 
try {
  // Line that throws the exception
  fail("Didn't throw an exception");
} catch (IllegalStateException ise) {
  assertEquals("Exception message", ise.getMessage());
}
pattern for exceptions since the JUnit annotations only really checks for the type(which there are many things that could possibly throw it).