php5 プログラミングにおける例外処理の詳細な紹介_PHP チュートリアル

WBOY
リリース: 2016-07-21 15:50:38
オリジナル
834 人が閲覧しました

1 まず、try,catch

$path = "D:\\in.txt";
try //例外を検出
{
file_open($path)
}
catch(Exception $e); //例外をキャッチ
{
echo $e->getMessage();
}

function file_open($path)
{
if(!file_exists($path)) // ファイルが見つからない場合は、例外オブジェクト
{
throw new Exception("ファイルが見つかりません", 1);
}

if(!fopen($path, "r")) // ファイルを開けない場合は、例外オブジェクトをスローします
{
throw new Exception ("ファイルを開けません", 2);
}
}
?>getMessage() を使用して例外情報を出力します

2 完全な例外情報を出力します。 ;?php
$path = "D:\\in.txt";

try
{
file_open($path); // ファイルを開いてみる
}
catch(Exception $e)
{
echo "例外メッセージ: ".$e->getMessage()."\n"; //ユーザー定義の例外情報を返す
echo "例外コード:".$e->getCode()."\n"; / /ユーザー定義の例外コードを返します
echo "ファイル名:".$e->getFile()."\n" //例外が発生した PHP プログラム ファイルの名前を返します
echo "例外コードがある".$e->getLine(). "\n"; //例外が発生した行の行番号を返す
echo "送信経路:";
print_r($e->getTrace ()); //各ステップで渡された追跡例外を配列形式で返します Route
echo $e->getTraceAsString() // getTrace 関数の情報を文字列形式で返します
}

function file_open($ path)
{
if(!file_exists($path)) //ファイルが存在しない場合、エラーがスローされます
{
throw new Exception("ファイルが見つかりません"
}

if (!fopen($path, "r"))
{
throw new Exception("ファイルを開けません" ", 2);
}
}
?>




拡張例外、つまりカスタムExceptions

class FileExistsException extends Exception{} //ファイルが存在しない例外の処理に使用されるクラス
class FileOpenException extends Exception{} //読み取り不可能なファイルの例外の処理に使用されるクラス

$path = "D:\ \in.txt";

try
{
file_open($path);
}
catch(FileExistsException $e) //FileExistsException 例外が発生した場合、ユーザーはファイルの場所を確認するよう求められます
{
echo "プログラムの実行中に例外が発生しました: ".$e->getMessage()."\n";
echo "ファイルの場所を確認してください。 ";
}
catch(FileOpenException $e) //FileOpenException が発生した場合、ユーザーはファイルの読み取り可能性を確認するよう求められます
{
echo "プログラムの実行中に例外が発生しました: ".$e-> ;getMessage() ."\n";
echo "ファイルが読み取れるかどうかを確認してください。";
}
catch(Exception $e)
{
echo "[不明な例外]";
echo "例外情報: ".$e->getMessage()."\n"; //user-に戻る定義された例外情報
echo "例外コード: ".$e->getCode()."\n"; //ユーザー定義の例外コードを返す
echo "ファイル名: ".$e->getFile() . "\n"; //例外が発生した PHP プログラムのファイル名を返します
echo "例外コードが存在する行".$e->getLine()." // 例外が発生した行を返します例外コードはNo.
echo "送信ルート:";
print_r($e->getTrace()); //追跡例外の各ステップのルートを配列の形式で返します
echo $e ->getTraceAsString(); //戻り形式 GetTrace 関数の情報を文字列に変換します
}

function file_open($path)
{
if(!file_exists($path))
{
throw new FileExistsException("ファイルが見つかりませんbe found", 1); //FileExistsException 例外オブジェクトをスローします
}

if(!fopen($path, "r"))
{
throw new FileOpenException("ファイルを開けません", 2); //Throw FileOpenException 例外オブジェクト

}
}
?> ;

4 例外を上位層に再スローします

class FileExistsException extends Exception{} //ファイルが存在しない例外を処理するために使用されるクラス
class FileOpenException extends Exception{} //ファイルを読み取れない例外を処理するために使用されます。 Class

$path = "D:\\in.txt";

try
{
file_open($path)
}
catch(FileExistsException $e) / /FileExistsException が発生した場合、ユーザーはファイルの場所を確認するように求められます
{
echo "プログラムの実行中に例外が発生しました: ".$e->getMessage()"
echo ";ファイルの場所を確認してください。 ";
}
catch(FileOpenException $e) //FileOpenException が発生した場合、ユーザーはファイルの読み取り可能性を確認するよう求められます
{
echo "プログラムの実行中に例外が発生しました: ".$e-> ;getMessage() ."\n";
echo "ファイルが読み取れるかどうかを確認してください。 ";
}
catch(Exception $e)
{
echo "[不明な例外]";
echo "例外情報: ".$e->getMessage()."\n"; //user-に戻る定義された例外情報
echo "例外コード: ".$e->getCode()."\n"; //ユーザー定義の例外コードを返す
echo "ファイル名: ".$e->getFile() . "\n"; //例外が発生した PHP プログラムのファイル名を返します
echo "例外コードが存在する行".$e->getLine()." // 例外が発生した行を返します例外コードはNo.
echo "送信ルート:";
print_r($e->getTrace()); //追跡例外の各ステップのルートを配列の形式で返します
echo $e ->getTraceAsString(); //戻り形式 GetTrace 関数の情報を文字列に変換します
}

function file_open($path)
{
try
{
if(!file_exists($path))
{
throw new FileExistsException ("ファイルが見つかりません", 1);

if(!fopen($path, "r"))
{
throw new FileOpenException("ファイルを開けません", 2); catch(Exception $e) //例外をキャッチ
{
echo "file_open 関数の操作中に例外が発生しました"; // 例外を再スローします
}
}
?>



http://www.bkjia.com/PHPjc/319361.html

www.bkjia.com

tru​​e

技術記事 1 まず、try,catch ?php $path="D:\\in.txt"; try//例外を検出 { file_open($path) } catch(Exception$e)//例外を検出 { echo$e-getMessage (); } functionfile_open($path) { if(!file_...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート