tighter exception looping