extra checking for program creation
Just scoping for clarity
Add a ProgramExcepetion struct to make it clear which one is firing
Add program validation check
Merge pull request #3253 from fluffyfreak/badPrograms

Extra checking for program creation