First check that is not a controller/software issue.
In my case i was affected with a kernel bug affecting the pcie_aspm (pci express active state power management), and that affected the sata controller specifically. Each drive will randomly get i/o errors (in the worst case, and other disk error types). Luckily i have lots hdds, 2 wd 1tb blacks and 2 tb green, and some other 500gb blue, so i knew that the disks were ok (i could not have 6 bad hdd just after installing certain os.
Had i have just one drive and i would have replaced it without any doubt. In the end (after a lot of diagnosing work) it was fixed disabling pcie_aspm.
wd black #1: UDMA_CRC_Error_Count = 159
wd black #2: UDMA_CRC_Error_Count = 89
wd green #1: UDMA_CRC_Error_Count = 1
wd green #2: UDMA_CRC_Error_Count = 1
I dont have the other drives to check, but they also have non zero UDMA_CRC_Error_Count.
And these errors are almos a year old, since they don't get reset to zero.
Backups are allways recommended, that is for sure.
Check if the sata data or power cable are loose. What os are you using. If you just have non-zero UDMA_CRC_Error_Count, then the disk is probably ok.