SonarQube warning cleanup (Critical warnings)

The below SonarQube critical warnings have been eliminated with this pull request:
* Reverted, due to Throwable needs to be handled in this instance
* A catch statement should never catch throwable since it includes errors
* Switch statement found where one case falls through to the next case 
* Avoid empty if statements, TODO items should be created separately
* Switch statement found where one case falls through to the next case
* Security - Array is stored directly

A handful of these critical warnings are still unresolved:
* Dodgy - int division result cast to double or float
* Correctness - Nullcheck of value previously dereferenced
* Avoid Catching Throwable

These are discussable and hence not rectified immediately.