Throwing such general exceptions as ``Exception``, ``SystemException``, ``ApplicationException``, ``IndexOutOfRangeException``, ``NullReferenceException``, ``OutOfMemoryException`` and ``ExecutionEngineException`` prevents calling methods from handling true, system-generated exceptions differently than application-generated errors.