2016-06-08 57 views
0

讓我們來看看下面的代碼:例外的繼承在PHP

class customException extends Exception{} 
$a; 
try{ 
    if(!$a) 
     throw new customException("Variable not initialize"); 
    echo $a; 
} 
catch(customException $e){ 
    echo $e->getMessage(); 
} 

Catch塊的工作,我們得到的屏幕上的錯誤文本,但是如果我改變了catch(customException $e)catch(Exception $e)這將是工作......爲什麼?我們拋出了類customException的例外,爲什麼它會工作?

解釋我請

+0

異常冒泡基本上所有的自定義異常在他們的核心是簡單的例外,所以它是有道理的,如果你考慮它。 – Andrew

回答

0

catch(exception $e)確實意味着像「抓$e如果($e instanceof exception)是真實的。

instanceof檢查是一類真正的(如customException),所有的父母(如exception)和所有接口該類或任何父母執行