2012-05-28 52 views

回答

2

它可以让你的错误之间differenciate。假设您有一个代码针对多个错误引发相同的异常,您可以在对象声明中使用可选的'code'参数来区分它们之间的差异。

在该页面的例子中,他们调用一个新的Exception,代码为30,所以当你检查输出的对象时,它返回'30'。

如:

try { 
    if ($something) { 
     throw new Exception("Generic Error",1); 
    } 
    else { 
     throw new Exception("Generic Error #2",2); 
    } 
} 
catch (Exception $e) { 
    echo "Error ID ".$e->getCode()." was thrown."; 
} 
+0

嗯,这似乎是我们可以使用任意数量。是否有推荐的标准/一组数字有点像HTTP状态代码? – IMB

+0

不是我所知道的。它只是Exception对象的一个​​组件,完全是为了自定义的使用。当然,我相信一些框架可能会有自己的错误代码规范,但完全取决于作者。 – Death

+0

一个常见的用途是转发来自外部源的错误代码,例如MySQL相关的类可能会抛出异常,其中包含来自底层MySQL库的相应代码。 – salathe