php中\Exception
和\RuntimeException
之间的确切语义差异是什么?
当我们应该使用前者和后者时?
答案 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
的继承。