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

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

関連記事

Google App Engine

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

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

PHP

Ubuntu で 複数のバージョンの PHP を使う手順

目次1. はじめに2. 前提とする環境 3. PHP 7.2 を導入する手順手順1:リポジトリを追加するツールをインストール手順2:リポジトリを追加手順3:PHP 7.2 をインストール4. PHP …

PHP

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

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

PHP

PHP 7.3.0 新機能

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

PHP

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

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