PHPにおけるException異常
2068 ワード
異常の基本使用
例外が投げ出されると、その後のコードは実行されず、PHPは一致する「catch」コードブロックを検索しようとします.異常がキャプチャされず、set_を使用する必要がない場合exception_handler()が対応する処理を行うと、重大なエラー(致命的なエラー)が発生し、「Uncautor Exception」(異常をキャプチャしていない)というエラーメッセージが出力されます.異常を投げ出して捕獲しないようにしましょう.
上記のコードでは、このようなエラーが発生します.
Try,throwとcatch
上記の例で発生したエラーを回避するには、例外を処理するために適切なコードを作成する必要があります.正しいプロセッサは、Try-例外を使用する関数が「try」コードブロック内にあるべきであることを含むべきである.例外がトリガーされていない場合、コードは通常通り実行されます.しかし、異常がトリガーされると、異常が放出されます.Throw-ここでは異常をトリガーする方法を規定します.各throwは、少なくとも1つのcatch-catchコードブロックに対応して例外を取得し、例外情報を含むオブジェクトを作成して例外をトリガーする必要があります.
上のコードを実行します.
例の説明:
上のコードは例外を放出し、checkNum()関数を作成します.数値が1より大きいかどうかを検出します.もしそうであれば、例外が投げ出されます.「try」コードブロックでcheckNum()関数を呼び出します.checkNum()関数の例外は、「catch」コードブロックから投げ出されて受信され、例外情報を含むオブジェクト($e)が作成されます.このexceptionオブジェクトから$e->getMessage()を呼び出すことで、この例外からのエラーメッセージを出力しますが、「throwごとに1つのcatchに対応しなければならない」という原則に従うために、漏れたエラーを処理するために最上位レベルの例外プロセッサを設定できます.
例外が投げ出されると、その後のコードは実行されず、PHPは一致する「catch」コードブロックを検索しようとします.異常がキャプチャされず、set_を使用する必要がない場合exception_handler()が対応する処理を行うと、重大なエラー(致命的なエラー)が発生し、「Uncautor Exception」(異常をキャプチャしていない)というエラーメッセージが出力されます.異常を投げ出して捕獲しないようにしましょう.
<?php
//create function with an exception
function checkNum($number)
{
if($number>1)
{
throw new Exception("Value must be 1 or below");
}
return true;
}
//trigger exception
checkNum(2);
?>
上記のコードでは、このようなエラーが発生します.
PHP Fatal error: Uncaught exception 'Exception' with message 'Value must be 1 or below' in /home/wangkongming/babytree/test/php/php_ob/3.php:7
Stack trace:
#0 /home/wangkongming/babytree/test/php/php_ob/3.php(12): checkNum(2)
#1 {main}
thrown in /home/wangkongming/babytree/test/php/php_ob/3.php on line 7
Try,throwとcatch
上記の例で発生したエラーを回避するには、例外を処理するために適切なコードを作成する必要があります.正しいプロセッサは、Try-例外を使用する関数が「try」コードブロック内にあるべきであることを含むべきである.例外がトリガーされていない場合、コードは通常通り実行されます.しかし、異常がトリガーされると、異常が放出されます.Throw-ここでは異常をトリガーする方法を規定します.各throwは、少なくとも1つのcatch-catchコードブロックに対応して例外を取得し、例外情報を含むオブジェクトを作成して例外をトリガーする必要があります.
<?php
//create function with an exception
function checkNum($number)
{
if($number>1)
{
throw new Exception("Value must be 1 or below");
}
return true;
}
//trigger exception
try{
checkNum(2);
echo "If you see this ,the number is 1 or below";
}catch(Exception $e) {
echo 'Message: '.$e -> getMessage();
}
?>
上のコードを実行します.
Message: Value must be 1 or below
例の説明:
上のコードは例外を放出し、checkNum()関数を作成します.数値が1より大きいかどうかを検出します.もしそうであれば、例外が投げ出されます.「try」コードブロックでcheckNum()関数を呼び出します.checkNum()関数の例外は、「catch」コードブロックから投げ出されて受信され、例外情報を含むオブジェクト($e)が作成されます.このexceptionオブジェクトから$e->getMessage()を呼び出すことで、この例外からのエラーメッセージを出力しますが、「throwごとに1つのcatchに対応しなければならない」という原則に従うために、漏れたエラーを処理するために最上位レベルの例外プロセッサを設定できます.