handled exceptions, more stable and effective