CakePHP2.xの組み込み例外(Exception)の種類。
2015/01/11
CakePHP2.xの組み込みの例外メモ。
全てCakeBookからのコピペです。
内部的なフレームワーク例外の他にも、CakePHP 内部の組み込み例外で、HTTP 方式の例外がいくつか存在します。
RESTな例外
BadRequestException
400 Bad Request エラーを発生させるために使います。
ForbiddenException
403 Forbidden エラーを発生させるために使います。
NotFoundException
404 Not found エラーを発生させるために使います。
MethodNotAllowedException
405 Method Not Allowed エラーを発生させるために使います。
InternalErrorException
500 Internal Server Error を発生させるために使います。
NotImplementedException
501 Not Implemented Errors を発生させるために使います。
あなたのコントローラが失敗のステータスや HTTP エラーを示すために、これらの例外を投げることができます。
フレームワーク層の例外
また、次に挙げるフレームワーク層の例外を使うこともできます。
これらは CakePHP コアコンポーネントの多くから投げられているものです。
MissingViewException
選ばれた view ファイルが見つかりません。
MissingLayoutException
選ばれた layout が見つかりません。
MissingHelperException
ヘルパーが見つかりません。
MissingBehaviorException
設定で指定された behavior が見つかりません。
MissingComponentException
設定で指定されたコンポーネントが見つかりません。
MissingTaskException
設定で指定されたタスクが見つかりません。
MissingShellException
Shell クラスが見つかりません。
MissingShellMethodException
選択された Shell クラスにこの名前のメソッドはありません。
MissingDatabaseException
設定で指定されたデータベースが見つかりません。
MissingConnectionException
モデルのコネクションが見つかりません。
MissingTableException
モデルのテーブルが見つかりません。
MissingActionException
要求されたコントローラのアクションが見つかりません。
MissingControllerException
要求されたコントローラが見つかりません。
PrivateActionException
private なアクションにアクセスしています。 private や protected、_ で始まるアクションにアクセスしているか、prefix されたルートに誤ってアクセスしようとしています。
CakeException
CakePHP での例外の基底クラスです。CakePHP によって投げられるフレームワーク層のすべての例外はこのクラスを継承しています。
これらの例外クラスはすべて CakeException を継承しています。 CakeException を継承することで、独自の ‘フレームワーク’ エラーを作ることができます。 CakePHP が投げる標準的な例外もすべて、CakeException を継承しています。
例外の使用例
下記は、見つからなかったものがある場合の、 404 ページをレンダリングする HTTP 例外の使用例です
1 2 3 4 5 6 7 |
public function view($id) { $post = $this->Post->findById($id); if (!$post) { throw new NotFoundException('この Post は見つかりませんでした'); // 404 NotFound を起こす } $this->set('post', $post); } |
◆参考サイト
例外(Exception) - CakePHP Cookbook v2.x documentation
[tgAmazonItemLookup asin="4797364211" related="1"]