What is the difference between fault coverage, code coverage, and functional coverage? And how do you measure them?

What is the difference between fault coverage, code coverage, and functional coverage? And how do you measure them?
Please provide examples of each, if possible.

In reply to VerifEx:

code coverage refers to how much percentage the code has been covered.
where as functional coverage measures how much design functionality has been exercised.
and fault coverage gives the percentage of fault that has been detected during verification.