Riiight... why don't we just use computers with an infinite amount of memory ? I mean, it would solve all those "out of memory" errors and we wouldn't need to swap to hard drive (which may fail) or anything like this... how could we not think of this before ??? ... oh! and we should make hard drives of infinite capacity too! no need to deal with "no space left on device" anymore... and we should make all of our hardware immune to EM, cosmic rays, G forces, whatever, I mean... "File corrupt" is such a depressing message...
The point is, there are errors that you cannot prevent, and that you can only detect. You may think that if we're able to detect them, then we can avoid them too, but that's not necessarilly true (ie, a cosmic ray hit a transistor that contains the microcode for booting the equipment). Some errors can be corrected, circumvented or altogether avoided, but some others just can't... but they can still be *detected*. In general it's still MUCH better to fail with a message that says why (so you can try to fix that) than failing silently (leaving you clueless about what's going on). As a general rule, it's VERY easy to write software, but it's VERY hard to write software that does not fail, that is, that fails gracefully.
It seems endemic of computer users that they constantly think they know better than both hardware manufacturers and software developpers.