This is a very simplistic error-correcting code, especially since it doesn't even correct errors. Much better is hamming code, where there are enough parity bits to cover each bit of the message/word multiple times; then, one can determine which bits are in error by seeing which parity bits are wrong.

Look up algebraic coding theory, information theory, and other such stuff if you're interested. Hamming wrote about this stuff, as did Claude Shannon.