PHP 5.1 has introduced ErrorException. The constructor of the two functions differs
public __construct ([ string $message = \"\" [, int $code = 0 [, Exception $p
ErrorException is mostly used to convert php error (raised by error_reporting) to Exception.
ErrorException
Exception
You should avoid using directly Exception which is too wide. Subclass it with specific Exception or use predefined SPL Exception
To follow your edit : Yes extends Exception rather than ErrorException.