code: private static LinkedHashMap<Integer, CodeException> collectExceptions(CodeException... exceptions) {
          List<CodeException> filteredEx = new ArrayList<>();
          for (CodeException ce : exceptions) {
              if ((ce.getCatchType() != 0) && (ce.getStartPC() < ce.getEndPC()) && (ce.getEndPC() <= ce.getHandlerPC())) {
                  filteredEx.add(ce);
              }
          }
  
          LinkedHashMap<Integer, CodeException> handlers = new LinkedHashMap<>();
  
          for (CodeException ex : filteredEx) {
              handlers.put(Integer.valueOf(ex.getEndPC()), ex);
          }
  
          return handlers;
      }
docs: collects all the valid exception objects (ones where start and finish are
  before the target) and with a catch type
  
  @param exceptions the exceptions from the class file
  @return the filtered exceptions keyed by catch end pc