1. A storage device comprising: a data transfer unit that stores to-be-transferred data into a nonvolatile memory, when an abnormal end occurs, the to-be-transferred data including to-be-saved data stored in a cache memory and parity data for correcting a data error in the to-be-saved data, with an error detection code for detecting a data error being added to the to-be-saved data and the parity data; a data reading unit that reads stripes from the nonvolatile memory when power is supplied to the storage device after an abnormal end, the stripes being formed by dividing the to-be-transferred data by a predetermined stripe size; an additional data adding unit that adds additional data to a stripe until a size of the stripe becomes equal to the stripe size, when the data reading unit does not finish reading the stripe within a predetermined period of time; a data error checking unit that determines whether a data error exists in the stripes, based on the error detection code added to the stripes read out by the data reading unit; a data correcting unit that corrects a data error, using the stripes read out by the data reading unit, when the data error checking unit detects the data error; and a data writing unit that writes into the cache memory to-be-saved data contained in stripes not having a data error detected by the data error checking unit, and writes into the cache memory to-be-saved data contained in stripes having a data error corrected by the data correcting unit.