php:Exception和RuntimeException之间的区别?

时间:2017-01-12 08:17:38

标签: php exception-handling

php中\Exception\RuntimeException之间的确切语义差异是什么?
当我们应该使用前者和后者时?

2 个答案:

答案 0 :(得分:17)

异常是PHP中所有异常的基类(包括RuntimeException)。 正如文档所说:

  

如果只能找到错误,则抛出RuntimeException   运行时发生。

这意味着每当你期望通常应该工作的东西时,就会出错:例如:除零或数组索引超出范围等。你可以抛出RuntimeException。

对于Exception,这是一个非常通用的例外,我称之为"最后的手段"。您可以将其作为最后一个添加到"尝试"只是为了确保您正在处理所有异常。

示例:

try {
    //code...
} catch(RuntimeException $e) {
    echo ("RuntimeException..."); 
} catch(Exception $e) {
    echo ("Error something went wrong!"); 
    var_dump($e); 
}

希望现在很清楚:)

答案 1 :(得分:2)

这两者之间的唯一区别是语义。 RuntimeException继承自Exception。基本上没有其他差异。

您可以创建自己继承自上述两者的异常,但最常用的是Exception的继承。