Hola Alberto,
La tabla de codificación puede estar correctamente sin errores, pero no ser completa para los símbolos del mensaje a codificar, por lo que no habría errores en la lectura de la tabla de codificación, si no, que el error aparecería recién en la codificación del mensaje, pues no encontró un símbolo del mensaje en la respectiva tabla de codificación que se utilice. Por ejemplo, usar la codificación ASCII (no extendido) y tener el mensaje "ñandú", donde los símbolos "ñ" y "ú" están solo en el ASCII extendido, y usando la tabla de codificación ASCII (no extendido) no se los va a encontrar.
Por otra parte, la función indiceEnTabla que debe utilizar la función decodificarConTabla retorna -1 cuando no encuentra un código (indicado en la letra), el cual no se corresponde a ningún valor del enum CodigoError. Análogamente uno se puede definir una función buscarSimboloEnTabla para buscar un símbolo, que actúa de la misma manera, pero para el caso de buscar un símbolo (luego de leída la tabla de codificación).
Por lo tanto, cuando la función indiceEnTabla no encuentra un código, entonces, la decodificación debe abortar retornando el código de error correspondiente, que asumiría yo sea un código dentro del enum CodigoError asociado a, por ejemplo, CODIGO_NO_ENCONTRADO.
Saludos,
Manuel.