What RedHairedHat wrote is not entirely true.
Here is a somewhat simplified explanation:
ECC (Error Checking and Correction or Error Correction Code, I've seen both) memory checks for errors and attempts to correct them on the fly.
It can correct most single-bit errors and some multi-bit errors without crashing or rebooting the system. If it can't correct the error it reboots the system with the bad memory mapped out so it will not be used.
The BIOS checks ALL memory (ECC, Non-ECC, Parity, and Non-Parity alike) when the system attempts to boot. That's what the memory count, on boot up, does. If it finds bad memory it will not allow the system to boot.
Parity memory also checks for errors on the fly but doesn't make corrections.
Good quality, modern memory has very few errors. That's why most modern systems don't use ECC or Parity memory. That's also why the memory test on boot is reduced to one iteration (Allow Quick Boot setting in BIOS), to speed up the boot process.
ECC is useful for servers or systems running "mission-critical applications" which can't afford disruptions.
ECC memory is not needed for most "home use or small office" computers; if the memory is bad, replace it. Good quality memory has a lifetime warranty.
ECC memory will not fix General Protection Faults, Invalid Page Faults or other errors which are caused by software.
Some chipsets, especially older ones, do not support ECC. So, check the motherboard manual before buying ECC memory.
ECC memory is more expensive and is also slower due to the error checking overhead.
If you feel you need ECC memory and your system supports it, remember that ECC and non-ECC memory, usually, can not be mixed. If it is mixed the ECC capabilities, usually, do not function.
Just thought I should clear that up.
Hope this helps. Good luck.
John