I don't understand what that statement means. Most of us find 'corruption' in Flash memory contents by running a CRC over it as part of BIST.
But if you are still going to pursue this concept:
The ARM 'fault process' pushes a special frame onto the stack, a 'coded value' into LX, and some extra 'fault info' in core control registers.
You say you 'cannot exit' the handler, and let me speculate the cause: 'Imprecise error' is SET, and this means the core-control registers contain 'limited useful content', and the LX code-value may be one the hardware recognizes as 'non viable' return info. This means the fault occurred NOT as a 'direct result' of the 'current' instruction. The 'most particular' cause of such is a 'write fault', because this ARM architecture has 'write buffers' to improve performance by allowing code to proceed while the actual write-op works thru arbs and busses to completion. So the detection that said 'write' is 'bad' is 'many cycles removed' from the causing-instruction, and thus the 'capture' by hardware of processor-state at THAT instant is 'way-late' and non-informative -- the faulting instruction CANNOT be found and re-started. To make write-faults PRECISE you must turn off the write-buffering capability in THAT system-control register. Only in THAT mode COULD you look at the offending information, run a 'corrective action' (like enabling a peripheral clock, or paging-in a block of memory...) and return to let the instruction re-run.