The first three are hardware failures, not software failures. The latter would be a design error, not a failure.
The software may need to handle hardware failures, but software that doesn't do that also doesn't fail -- it's inadequately designed.