Turns out there are sometimes errors that will not prevent the shader from functioning normally. As such, it is not possible to simply throw when there are errors/warnings. Since we are not logging to the console, these errors will have to stay hidden unless the user requests them explicitly.