2017-08-04 80 views
0
try { 

} catch (Exception $e) { 

} 

我以为PHP有​​类型推断。为什么需要声明变量的类型 - $ e--?

+1

因为可以有多个异常类型,并且您可能希望根据异常的实例执行不同的事情,因此您可以堆叠“catch”关键字。 –

+0

[捕获中的$ e是什么($ e),而PHP中的错误或异常处理?](https://www.quora.com/What-is-e-in-catch-e-while-error-or-异常处理在PHP中) –

回答

0

该代码可以抛出不同类别的异常。你可以利用它来为你的错误处理添加正确的代码。

A try块可以跟着任意数量的catch块。

例子:

try 
{ 
} 
catch(\PDOException $e) 
{ 
    // Something bad happened while dealing with database 
} 
catch(\LengthException $e) 
{ 
    // Length exception occurred 
} 
catch(\Exception $e) 
{ 
    // The \Exception is the parent class for all exceptions, this handles anything not caught in above example 
} 

使用上面的示例,您可以根据为什么他们发生采取处理错误适当的措施。这意味着你可以抛出你定义的异常。这是最好的,如果你不过分,并用异常换掉整个错误处理。例如,当代码流发生异常时会发生异常 - 与MySQL的连接打破了中间事务。

+0

太棒了,谢谢。这种强制行为也可以用于函数吗? –

+0

你是什么意思?如果一个函数抛出异常,那么是的。任何事情都可以抛出异常或任何类型的异常。 –

+0

例如我可以声明一个函数,如---函数acceptException(Exception $ e){} –