@@ -86,6 +86,7 @@ abstract class Exception extends \Exception
8686 const UNEXPECTED_PARAMETERS = -5 ;
8787 const INVALID_REQUEST = -6 ;
8888 const UNKNOWN_LOCATOR_STRATEGY = -7 ;
89+ const W3C_WEBDRIVER_ERROR = -8 ;
8990
9091 private static $ errs = array (
9192// self::SUCCESS => array('Success', 'This should never be thrown!'),
@@ -136,12 +137,8 @@ abstract class Exception extends \Exception
136137 public static function factory ($ code , $ message = null , $ previousException = null )
137138 {
138139 // unknown error
139- if (!isset (self ::$ errs [$ code ])) {
140- if (trim ($ message ) === '' ) {
141- $ message = 'Unknown Error ' ;
142- }
143-
144- return new \Exception ($ message , $ code , $ previousException );
140+ if (! isset (self ::$ errs [$ code ])) {
141+ $ code = self ::UNKNOWN_ERROR ;
145142 }
146143
147144 $ errorDefinition = self ::$ errs [$ code ];
@@ -150,6 +147,10 @@ public static function factory($code, $message = null, $previousException = null
150147 $ message = $ errorDefinition [1 ];
151148 }
152149
150+ if (! is_numeric ($ code )) {
151+ $ code = self ::W3C_WEBDRIVER_ERROR ;
152+ }
153+
153154 $ className = __CLASS__ . '\\' . $ errorDefinition [0 ];
154155
155156 return new $ className ($ message , $ code , $ previousException );
0 commit comments