以下のようなコードを実行して例外を発生させ、catch以降の処理に飛ばしたいのですが、
Fatal error: Uncaught exception 'Exception' with message...
とエラーが出て例外を捕捉できません。
index.php
<?php
$process = new Process();
core/process.php
<?php
namespace core;
use \app\Controller;
class Proccess
{
public function __construct()
{
$c = new Controller();
try {
$c->run();
} catch (\Exeption $e) {
echo $e->getMessage();
}
}
}
?>
app/Controller.php
<?php
namespace app;
class Controller
{
public function __construct()
{
throw new \Exeption('error!!');
}
}
index.phpから処理を起動するのですが、
何が問題で例外が捕捉されないのかがわかりません。
利用しているPHPのバージョンは5.4.15です。
すみません、core/process.phpのコードを間違えて書いてしまいました。
正しいコードは↓のものです。
core/process.php
namespace core;
use \app\Controller;
class Proccess
{
public function __construct()
{
try {
$c = new Controller();
$c->run();
} catch (\Exeption $e) {
echo $e->getMessage();
}
}
}
?>
また、ここには記述しませんでしたが、オートロードクラスが別に存在しており、
namespaceを指定すればクラスを自動でロード出来るようなになっています。
コメント(2件)
まさにtypoしていました...
typoで出来た存在しないクラスでも実行時にはエラーにならないのですね。
勉強になりました。