When Tomcat deploys a webapp but fails, this will be written to the logfile but the application is not deployed. If after that a client tries to access the application obviously that ends in a 404 result.Now the question is whether you are using lazy loading, which means some servlets or the whole application get deployed only when the first request comes in.
Any way, you need to resolve these fatal issues as neither Tomat nor the webapp will be able to work without help. Check the logfile to find out the reason.
One simple reason could be that the webapp requires some other resource that has not been deployed as e.g. a DB connection pool.
And to come back to your question: I am not aware there is an option to turn this off. But you can either change your web.xml or use annotations to pre-load your servlets, which would give you the error messages not upon first requet but right at application deployment.
Also read: When exactly a web container initialize a servlet?