Error-correcting codes play an important role in storage systems to maintain data integrity. In this work, we propose a new class of linear error- correcting codes, called ladder codes, whose codeword structure consists of multiple codewords of certain component codes and also their shared redundancy. First, we give a general construction for an μ-level ladder code, determine the code length and dimension, and also derive a lower bound d-Lon the minimum distance. Some examples of ladder codes are presented. Then, we study correctable error-erasure patterns of ladder codes and give a corresponding decoding algorithm. Finally, we compare a two-level ladder code with a concatenated code, and show that the former can outperform the latter in many cases. Ladder codes have potential to be used for data protection in flash memories where only a few pages may suffer from severe errors in a block.