PHP例外処理の全て!初心者でも理解できる9つのステップ – Japanシーモア

PHP例外処理の全て!初心者でも理解できる9つのステップ

PHPの例外処理を学ぶ初心者のイラストPHP
この記事は約7分で読めます。

 

【サイト内のコードはご自由に個人利用・商用利用いただけます】

このサービスは複数のSSPによる協力の下、運営されています。

この記事では、プログラムの基礎知識を前提に話を進めています。

説明のためのコードや、サンプルコードもありますので、もちろん初心者でも理解できるように表現してあります。

基本的な知識があればカスタムコードを使って機能追加、目的を達成できるように作ってあります。

※この記事は、一般的にプロフェッショナルの指標とされる『実務経験10,000時間以上』を凌駕する現役のプログラマチームによって監修されています。

サイト内のコードを共有する場合は、参照元として引用して下さいますと幸いです

※Japanシーモアは、常に解説内容のわかりやすさや記事の品質に注力しております。不具合、分かりにくい説明や不適切な表現、動かないコードなど気になることがございましたら、記事の品質向上の為にお問い合わせフォームにてご共有いただけますと幸いです。
(送信された情報は、プライバシーポリシーのもと、厳正に取扱い、処分させていただきます。)

はじめに

PHPの例外処理について学びたいと思っているあなたへ。

この記事を読めば、PHPの例外処理についての基本的な知識から、詳細な使い方、対処法、注意点、そしてカスタマイズ方法まで、初心者でも理解できる形で学ぶことができます。

具体的なサンプルコードとともに、10のステップでPHPの例外処理をマスターしましょう。

●PHPとは

PHPは、Webサイトのサーバーサイドで動作するスクリプト言語の一つです。

HTMLと組み合わせて使用され、動的なWebページを作成することが可能です。

PHPはオープンソースであり、無料で使用することができます。

また、データベースとの連携も容易で、多くのWebアプリケーション開発で利用されています。

●例外処理とは

プログラミングにおける例外処理とは、プログラムの実行中に予期しないエラーが発生した場合に、そのエラーを適切に捕捉し、プログラムの動作を継続するための処理のことを指します。

例えば、ファイルの読み込み時にファイルが存在しない場合や、データベースの処理中にSQL文の構文エラーが発生した場合などが考えられます。

●PHPでの例外処理の基本

PHPでの例外処理は、主にtry-catch文を使用して行います。

tryブロック内には例外が発生する可能性があるコードを記述し、その後にcatchブロックを記述します。

catchブロック内では、tryブロック内で発生した例外を捕捉し、適切な処理を行います。

○サンプルコード1:基本的な例外処理

PHPでの基本的な例外処理のサンプルコードを紹介します。

<?php
try {
    // 例外が発生する可能性があるコード
    $file = fopen("nonexistent_file.txt", "r");
} catch (Exception $e) {
    // 例外が発生した場合の処理
    echo "エラーが発生しました: " . $e->getMessage();
}
?>

このコードでは、まずtryブロック内で存在しないファイルを開こうとしています。

この時点で例外が発生し、catchブロックが実行されます。

catchブロック内では、例外オブジェクトからエラーメッセージを取得し、それを表示しています。

●例外処理の詳細な使い方

PHPの例外処理では、例外クラスを自分で定義することも可能です。

自分で定義した例外クラスを使うことで、より詳細な例外処理を行うことができます。

また、複数のcatchブロックを用いて、異なる種類の例外に対する処理を分けることもできます。

○サンプルコード2:詳細な例外処理

自分で例外クラスを定義し、複数のcatchブロックを用いた例外処理のサンプルコードを紹介します。

<?php
// 自分で定義した例外クラス
class MyException extends Exception {}

try {
    // 例外が発生する可能性があるコード
    throw new MyException("これはMyExceptionです");
} catch (MyException $e) {
    // MyExceptionが発生した場合の処理
    echo "MyExceptionが発生しました: " . $e->getMessage();
} catch (Exception $e) {
    // その他の例外が発生した場合の処理
    echo "エラーが発生しました: " . $e->getMessage();
}
?>

このコードでは、まず自分でMyExceptionという例外クラスを定義しています。

その後、tryブロック内でMyExceptionを投げています。

この例外は最初のcatchブロックで捕捉され、対応するメッセージが表示されます。

●例外処理の注意点

PHPの例外処理を行う上での注意点として、次のような点があります。

  1. 例外は重大なエラーが発生した場合にのみ使用するべきです。
    例外処理はプログラムの流れを大きく変えるため、頻繁に使用するとコードの読みやすさが損なわれます。
  2. catchブロックで捕捉できない例外が発生すると、プログラムは終了します。
    そのため、可能な限り全ての例外を捕捉できるようにすることが重要です。
  3. 例外クラスを自分で定義する場合は、既存の例外クラスを適切に継承することが重要です。
    これにより、既存の例外クラスの機能を引き継ぎつつ、新たな機能を追加することができます。

●例外処理の対処法

例外が発生した場合の対処法としては、主に次のような方法があります。

  1. try-catch文を使用して例外を捕捉し、適切な処理を行います。
    これにより、例外が発生してもプログラムの動作を継続することができます。
  2. 例外が発生する可能性があるコードを改善します。
    例えば、ファイルを開く前にそのファイルが存在するかどうかを確認するなど、例外が発生する条件を事前に排除することも有効です。

○サンプルコード3:例外処理の対処法

例外処理の対処法を示すサンプルコードを紹介します。

<?php
try {
    // ファイルが存在するか確認
    if (!file_exists("some_file.txt")) {
        throw new Exception("ファイルが存在しません");
    }

    // ファイルを開く
    $file = fopen("some_file.txt", "r");
} catch (Exception $e) {
    echo "エラーが発生しました: " . $e->getMessage();
}
?>

このコードでは、ファイルを開く前にそのファイルが存在するかどうかを確認しています。

ファイルが存在しない場合は、自分で例外を投げてそれをcatchブロックで捕捉し、エラーメッセージを表示しています。

●例外処理のカスタマイズ方法

PHPの例外処理は、自分で例外クラスを定義することでカスタマイズすることが可能です。

自分で定義した例外クラスを使用することで、例外に追加の情報を持たせることができます。

また、複数のcatchブロックを使用することで、異なる種類の例外に対して異なる処理を行うことも可能です。

○サンプルコード4:例外処理のカスタマイズ

例外処理のカスタマイズを示すサンプルコードを紹介します。

<?php
// 自分で定義した例外クラス
class FileNotFoundException extends Exception {
    public function __construct($filename) {
        parent::__construct($filename . "が見つかりません");
    }
}

try {
    // ファイルが存在するか確認
    if (!file_exists("nonexistent_file.txt")) {
        throw new FileNotFoundException("nonexistent_file.txt");
    }

    // ファイルを開く
    $file = fopen("nonexistent_file.txt", "r");
} catch (FileNotFoundException $e) {
    echo $e->getMessage();
} catch (Exception $e) {
    echo "エラーが発生しました: " . $e->getMessage();
}
?>

このコードでは、自分でFileNotFoundExceptionという例外クラスを定義しています。

この例外クラスは、ファイルが存在しない場合に投げられます。

FileNotFoundExceptionはExceptionクラスを継承しており、コンストラクタでエラーメッセージを設定しています。

tryブロック内では、ファイルが存在しない場合にFileNotFoundExceptionを投げています。

この例外はcatchブロックで捕捉され、エラーメッセージが表示されます。

まとめ

この記事では、PHPの例外処理について詳しく解説しました。

例外処理は、予期しないエラーが発生した場合にそのエラーを適切に捕捉し、プログラムの動作を継続するための重要な機能です。

PHPでは、try-catch文を使用して例外処理を行います。

また、自分で例外クラスを定義することで、より詳細な例外処理を行うことが可能です。

例外処理を理解し、適切に使用することで、より堅牢なPHPプログラムを作成することができます。