I'm not sure this is the best thing to do.  Just bailing on the user because of null values can be frustrating.  Imagine I have a large dataset and the last feature is null, the process would get all the way though and then just exit right at the end.

Here is what I think should happen.

 - Store error'd features in a list `featureErrors= []`
 - Ignore any features that have NULL as the attribute, or can't be converted to to int(). `featureErrors.append(sFeat)
 - `continue` the while loop
 - Return a tuple at the end `return sPoints, featureErrors 
 - Show a message bar `iface.messageBar().pushMessage("Errors", "Some features couldn't be calculated due xxxxxx")` on line 208 where loopThruPolygons returns.