PHP

PHPでのエラー処理・例外処理

投稿日:2016年11月4日 更新日:

1. PHPの例外クラス

PHPには以下の例外クラスが組み込まれています。

PHPの例外クラスツリー

参考

2. 例外クラスの使い分け

それぞれの例外クラスをどのように使い分ければよいのかというのは、なかなか難しいところです。

以下にまとめてみました。

例外クラスの使い分け

3. 独自アプリ用例外クラスの作成例と利用例

  • \Exception を継承したクラスと \RuntimeException を継承したクラスを作って使い分けると良い。
  • あとは、独自アプリ用例外インタフェースを用意して、それぞれのクラスで implements しておく。そうすることで、独自アプリから発生した例外を判別することができる。

例外クラスの作成例

interface MyAppException { }

class MyException extends \Exception implements MyAppException { }

class MyRuntimeException extends \RuntimeException implements MyAppException { }

例外クラスを捕捉する例

// トップレベルのエラーハンドラ
try {

} catch (MyAppException) {
  // 開発中のアプリから発生する例外はここで捕捉できる
} catch (\RuntimeException $e) {
  // その他の実行時例外はここで捕捉できる
  // 必要であればリソースの開放などを行う
} catch (\Exception $e) {
  // その他の例外はここで捕捉できるが、捕捉する必要はないかもしれない
  // 必要であればリソースの開放などを行う
}

PHP でどのように Exception/RuntimeException/LogicException を使い分けるか – Qiita を参考にしました。

4. 資料

📂-PHP
-,

執筆者:labo


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

PHP

PHPって何ができるの?

「PHPって何ができるか?」を知るために、最小限の PHP を使った Webページが Webブラウザにどんなデータを返すのか? を見ていきます。 スポンサードリンク 目次1. この記事が前提としている …

PHP

PHPで即時実行関数を使って名前空間を汚さない

JavaScript だとよく見るやり方なのですが、「即時実行関数を使って名前空間を汚さない」やり方って、PHP の場合はあまりやらないのでしょうか? PHPで関数を宣言すると、その名前はグローバル空 …

PHP

Composer を使って PSR-4 オートロードしている場合、composer.json は必要なくなる

PHP を使った開発でよく使う Composer に関するお話しです。 例えば、composer.json に以下のように記述して開発を行ったとします。 { … “autoload”: { “ps …

PHP

pecl install xxxx する際は、php -v と php-config –version が一致しているか確認してから行う

pecl install xxxx する際は、php -v と php-config –version が一致しているか確認してから行うとよいという話しです。

PHP

PHP:マイクロ秒を含めて時刻を表示する

PHPで、マイクロ秒を含めて時刻を表示する方法を紹介します。