PHPで例外を投げても捕捉されない問題で困っています。


以下のようなコードを実行して例外を発生させ、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です。

回答の条件
  • 1人50回まで
  • 登録:
  • 終了:2013/06/16 17:35:03
id:k-motoyan888

すみません、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を指定すればクラスを自動でロード出来るようなになっています。

回答0件)

回答はまだありません

  • id:Lhankor_Mhy
    Exception を Exeption とtypoしてるように見えますが、大丈夫ですか?
  • id:k-motoyan888
    ありがとうございます。
    まさにtypoしていました...

    typoで出来た存在しないクラスでも実行時にはエラーにならないのですね。
    勉強になりました。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません