This class provides skeletal implementations of some {@link Queue} operations. The implementations in this class are appropriate when the base implementation does <em>not</em> allow {@code null} elements. Methods {@link #add add}, {@link #remove remove}, and {@link #element element} are based on {@link #offer offer}, {@link #poll poll}, and {@link #peek peek}, respectively, but throw exceptions instead of indicating failure via {@code false} or {@code null} returns.