It must be developed with the highest level of error information activated. With this we can avoid an important part of possible errors in production, since even warnings and notifications that could not make the application fail at any given time will fill the log of errors of the server what can make us more complicated to find errors in a given moment or offer an information that should be hidden in case of being able to be accessed.
Likewise. Practices such as the use of @ in front of functions to mute errors during execution are discouraged.
It should be programmed with the minimum of errors and this means that we should avoid them as much as possible and if there are, try to find them and correct them in the early stages of development. In addition to all this, one or more systems must be used that allow their control during the life cycle of the application, such as exception control, log system, feedbacks, etc.