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

画像ファイルの拡張子でないURLから 画像ファイルを返すPHPコードの例

ウェブブラウザで画像ファイルをダウンロードする場合、URL は https://example.com/foo/bar.png というように、末尾がそのファイル名になっていることが多いと思います。 こ …

PHP

【PHP】Composer の使い方

Composer は、PHPのパッケージ管理ツールです。利用するパッケージ(ライブラリ)間の依存関係も解決してくれます。 スポンサードリンク 目次1. Composer の特徴2. 対応している PH …

Google App Engine

SendGrid でメール送信する(Google App Engine, PHP7)

Google App Engine (runtime: php72) の環境における、SendGrid を使ったメール送信方法について説明しています。

Google App Engine

普通のPHPサイトをGAE(php72)上で実現する方法

普通のPHPサイトをGAE(php72)上で実現する方法について説明しています。

PHP

PHP 7.3.0 新機能

目次はじめにFlexible Heredoc and Nowdoc SyntaxPCRE2 MigrationMultiple MBString Improvements はじめに PHP 7.3.0 …