Не пойму, почему в If-else выбрасывается исключение. Если else с throw new IllegalArgumentException() закоментить - все собирается как надо.
package com.javarush.task.task25.task2502;

import java.util.ArrayList;
import java.util.List;

/*
Машину на СТО не повезем!
*/
public class Solution {
    public static enum Wheel {
        FRONT_LEFT, FRONT_RIGHT, BACK_LEFT, BACK_RIGHT
    }

    public static class Car {
        protected List<Wheel> wheels;

        public Car() {
            wheels = new ArrayList<>();
            String[] array = loadWheelNamesFromDB();

//            for (String s : array) {
//                System.out.println(Wheel.valueOf(s));
//            }

            for (String s : array) {
                if (s == null) {
                    throw new NullPointerException();
                }
                if (s.isEmpty()) {
                    throw new IllegalArgumentException();
                }

                for (Wheel w : Wheel.values()) {
                    if (s.equals(w.toString())) {
                        wheels.add(Wheel.valueOf(s));
                    }
                    else { //здесь выбрасывает исключение
                        throw new IllegalArgumentException();
                    }
                }
            }
        }

        protected String[] loadWheelNamesFromDB() {
            //this method returns mock data
            return new String[]{"FRONT_LEFT", "FRONT_RIGHT", "BACK_LEFT", "BACK_RIGHT"};
        }
    }

    public static void main(String[] args) {
        Car car = new Car();
        for (Wheel w : car.wheels) {
            System.out.println(w);
        }
    }
}