Let's say I have a class like the following one:
public class Parameter {
private double[] parameterValues;
public Parameter(double[] parameterValues) throws BadElementInitializationException {
    checkParameterValues(parameterValues);
    this.parameterValues = parameterValues;
}
public double[] getParameterValues() {
    return parameterValues;
}
public void setParameterValues(double[] parameterValues) throws BadElementInitializationException {
    checkParameterValues(parameterValues);
    this.parameterValues = parameterValues;
}
private void checkParameterValues(double[] parameterValues) throws BadElementInitializationException {
    if(parameterValues == null)
        throw new BadElementInitializationException("Parameter values cannot be null");
    if(parameterValues.length == 0)
        throw new BadElementInitializationException("Parameter values cannot be empty");
}
public int noOfValues(){
    return parameterValues.length;
}
}
And the array is later used to perform some calculations.
My question is, where should I check that parameterValues is not null, nor empty? Should I do that in the Parameter class, like I did, or should I do that in the class which performs calculations?
Moreover, should I throw an exception here, or in the Calculation class? And what would be the reason to throw checked and what to throw unchecked exception? My goal is to make a stable application that won't crash easily.
 
     
     
    