Every block on every drive is recorded is a semi-redundant fashion. Extra check bits are added (CRC bits) so that when read back, the drive can detect and often correct small errors in the data.
A drive that is doing its job will occasionally make a data correction when reading data, and this is perfectly normal. If the data cannot be corrected, they will be re-read, in hopes of getting correctable data on the next read. This is still considered routine.
It is not considered a failure of any sort until after thousands of re-reads, you still cannot get correctible data from that block, and your Mac will issue an I/O Error.
This is still not considered a drive failure. It may be that the data were marginal recoding that one pattern, and a re-write of new data may proceed normally and not need to be corrected the next time.
Drive Controllers also keep a number of spare blocks in a private stash to substitute for blocks that actually "go bad" and cannot read back a newly-written pattern. When new data are supplied, the drive can substitute a spare block for one that is found to be Bad immediately after writing. This is STILL a routine operation, and is not considered a drive failure.
It is only a failure when you write new data to the entire drive, and after reading it all back, more than 10 blocks need to have spares substituted, or the drive runs out of spare blocks.