ホームページ >php教程 >php手册 >php5プログラミングにおける例外処理の詳細な紹介

php5プログラミングにおける例外処理の詳細な紹介

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBオリジナル
2016-06-13 12:27:251083ブラウズ

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);
}
}
?>
例外情報を出力するには、$e->getMessage() を使用してください。完全な例外情報を出力します

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

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

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

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




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

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 "ファイルの実行中に例外が発生しましたProgram:". $e->getMessage()."\n";
echo "ファイルが読み取れるかどうかを確認してください。";
}
catch(Exception $e)
{
echo "[不明な例外]";
echo "例外メッセージ: ".$e->getMessage()。" \n"; //ユーザー定義の例外情報を返す
echo "例外コード: ".$e->getCode()."\n"; //ユーザー定義の例外コードを返す
echo "ファイルname:".$e->getFile()."\n"; //例外が発生した PHP プログラム ファイルの名前を返します
echo "例外コードが存在する行".$e- >getLine(). "\n"; // 例外が発生した行の行番号を返す
echo "送信ルート:"
print_r($e->getTrace()); /配列の形式で追跡例外を返します。各ステップで渡されたルート
echo $e->getTraceAsString(); //getTrace 関数の情報を文字列形式で返します。
}

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

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

}
}
?>

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

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 "ファイルの実行中に例外が発生しましたProgram:". $e->getMessage()."\n";
echo "ファイルが読み取れるかどうかを確認してください。 ";
}
catch(Exception $e)
{
echo "[不明な例外]";
echo "例外メッセージ: ".$e->getMessage()。" \n"; //ユーザー定義の例外情報を返す
echo "例外コード: ".$e->getCode()."\n"; //ユーザー定義の例外コードを返す
echo "ファイルname:".$e->getFile()."\n"; //例外が発生した PHP プログラム ファイルの名前を返します
echo "例外コードが存在する行".$e- >getLine(). "\n"; //例外が発生した行の行番号を返す
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("ファイルを開けません",
}
}
catch(Exception $e) / /例外をキャッチ
{
echo "file_open 関数の操作中に例外が発生しました";
throw $e; // 例外を再スローします。 >}
}
?>

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。