title: Why we need fail fast and fail safe software design?
body: <p>We know Java has fail-fast and fail-safe iteration design.</p>
  
  <p>I want to know , why we need these basically. Is there any fundamental reason for this separation? . What is the benefit of this design?.</p>
  
  <p>Other than collection iteration , Java follows this design anywhere else?</p>
  
  <p>Thanks</p>