### Question:
BaseTaggableObject implements TaggableObject { @Override public ByteString getTag(String tag) { ByteString b = maybeGetTag(tag); if (b == null) throw new IllegalArgumentException("Unknown tag " + tag); return b; }  @Override @Nullable synchronized ByteString maybeGetTag(String tag); @Override ByteString getTag(String tag); @Override synchronized void setTag(String tag, ByteString value); @Override synchronized Map<String, ByteString> getTags();  }### Answer:
@Test(expected = IllegalArgumentException.class) public void exception() throws Exception { obj.getTag("non existent"); }