@Nonnull
  public static <KEYTYPE, ENUMTYPE extends Enum <ENUMTYPE> & IHasID <KEYTYPE>> ENUMTYPE getFromIDOrThrow (@Nonnull final Class <ENUMTYPE> aClass,
                                                                                                          @Nullable final KEYTYPE aID)
  {
    final ENUMTYPE aEnum = getFromIDOrNull (aClass, aID);
    if (aEnum == null)
      throw new IllegalArgumentException ("Failed to resolve ID " + aID + " within class " + aClass);
    return aEnum;
  }
@ Nonnull public static < KEYTYPE , ENUMTYPE extends Enum < ENUMTYPE > & IHasID < KEYTYPE > > ENUMTYPE getFromIDOrThrow ( @ Nonnull final Class < ENUMTYPE > aClass , @ Nullable final KEYTYPE aID ) { final ENUMTYPE aEnum = getFromIDOrNull ( aClass , aID ) ; if ( aEnum == null ) throw new IllegalArgumentException ( "Failed to resolve ID " + aID + " within class " + aClass ) ; return aEnum ; }
Get the enum value with the passed ID. If no such ID is present, an
{@link IllegalArgumentException} is thrown.

@param <KEYTYPE>
The ID type
@param <ENUMTYPE>
The enum type
@param aClass
The enum class
@param aID
The ID to search
@return The enum item with the given ID. Never <code>null</code>.
@throws IllegalArgumentException
if no enum item with the given ID is present