This paper considers the classical error correcting problem which is frequently discussed in coding theory. We wish to recover an input vector from corrupted measurements . Here, is an by (coding) matrix and is an arbitrary and unknown vector of errors. Is it possible to recover exactly from the data ? We prove that under suitable conditions on the coding matrix , the input is the unique solution to the -minimization problem () provided that the support of the vector of errors is not too large, for some . In short, can be recovered exactly by solving a simple convex optimization problem (which one can recast as a linear program). In addition, numerical experiments suggest that this recovery procedure works unreasonably well; is recovered exactly even in situations where a significant fraction of the output is corrupted.