PHP例外エラー処理の仕組みとエラー処理(1/2)_PHPチュートリアル

WBOY
リリース: 2016-07-13 10:55:42
オリジナル
927 人が閲覧しました

PHP で使用する最も一般的なエラー メカニズムは、エラーを簡単にキャッチできる try catch{} です。ただし、PHP では、php.ini で処理できるエラー表示とエラー終了も提供しています。 (0); エラーを表示しないようにファイルの先頭に追加します

コードは次のとおりです コードをコピー

$a = fopen('test.txt','r'); //ここではファイルを判断せずにオープンしますが、ファイルが存在しない場合はエラーが報告されます
?>

その場合、正しい書き方は次のようになります:

コードは次のとおりですコードをコピー1. PHP エラー処理の 3 つの方法 A. 単純な die() ステートメント。 exit() と同等です。 例:
if(file_exists('test.txt')){
$f=fopen('test.txt','r'); //使用後は閉じてください
fclose($f); }
?>



コードは次のとおりです

コードをコピー die('ファイルが存在しません'); } その他 { // 操作を実行します }コードは次のとおりです
if(!file_exists('aa.txt')){
//上記の die() がトリガーされた場合、ここでのエコー接続は実行されません

「ok」をエコーし​​ます;




簡潔な文章:

コードをコピー

file_exits('aaa.txt') または die('ファイルが存在しません'); 「ok」をエコーし​​ます;

B、カスタムエラーとエラートリガー

1. エラー ハンドラー (カスタム エラー、通常は構文エラーの処理に使用されます)
少なくとも 2 つのパラメーター (error_level と errormessage) を処理できる必要がありますが、最大 5 つのパラメーター (error_file、error_line、error_context) を受け入れることができるカスタム エラー関数 (ハンドラー) を作成します
文法:

関数 error_function($error_level,$error_message,$error_file,$error_line,$error_context)
//作成後、set_error_handler() 関数を書き直す必要があります
; set_error_handler('error_function',E_WARNING); //ここで、error_function は上で作成したカスタム ハンドラー名に対応し、2 番目のパラメーターはカスタム エラー ハンドラーを使用するエラー レベルです。

エラー報告レベル(理解するだけ)

これらのエラー レポート レベルは、エラー ハンドラーが処理するように設計されているさまざまな種類のエラーです。

値定数の説明

2 E_WARNING 致命的ではない実行時エラー。スクリプトの実行を一時停止しないでください。

8 E_NOTICE 実行時通知。

スクリプト検出エラーが発生する可能性がありますが、スクリプトが正常に実行されているときに発生することもあります。

256 E_USER_ERROR ユーザーが生成した致命的なエラー。これは、プログラマが PHP 関数trigger_error()を使用して設定する E_ERROR に似ています。
512 E_USER_WARNING 致命的ではないユーザー生成の警告。これは、プログラマが PHP 関数 trigger_error() を使用して設定する E_WARNING に似ています。
1024 E_USER_NOTICE ユーザーが生成した通知。これは、プログラマが PHP 関数trigger_error() を使用して設定する E_NOTICE に似ています。
4096 E_RECOVERABLE_ERROR トラップ可能な致命的なエラー。 E_ERROR と似ていますが、ユーザー定義のハンドラーによってキャッチされる可能性があります。 (set_error_handler() を参照)
8191 E_ALL レベル E_STRICT を除くすべてのエラーと警告。

(PHP 6.0 では、E_STRICT は E_ALL の一部です)


2. エラー トリガー (通常、論理エラーを処理するために使用されます)

要件: たとえば、年齢を受け取りたい場合、数値が 120 より大きい場合、エラーとみなされます

伝統的な方法:

if($年齢>120){

echo '年齢が間違っています';exit(); }


トリガーを使用する:

if($年齢>120){

//trigger_error('error message'[,'error level']);ここでのエラー レベルはオプションであり、エラーのレベルを定義するために使用されます

//ユーザー定義レベルには次の 3 つのタイプがあります: E_USER_WARNING、E_USER_ERROR、E_USER_NOTICE

trigger_error('age error');//これは呼び出し側システムのデフォルトのエラー処理メソッドであり、カスタムプロセッサを使用することもできます
}
//カスタムプロセッサ、上記と同じ
関数 myerror($error_level,$error_message){
「エラーテキスト」をエコーし​​ます
}
//同時に、システムのデフォルト処理関数を変更する必要があります
set_error_handler('myerror',E_USER_WARNING);//上記と同様、最初のパラメータはカスタム関数の名前、2 番目のパラメータはエラー レベルです [ここでのエラー レベルは通常、次の 3 つです: E_USER_WARNING、E_USER_ERROR、E_USER_NOTICE ]
//trigger_error を使用してカスタム エラー処理関数を使用できるようになりました

練習問題:

コードは次のとおりです
コードをコピー date_default_timezone_set('PRC'); 関数 myerror($error_level,$error_message){ PHP で最も一般的に使用されるエラー メカニズムは、簡単にエラーをキャッチできる try catch{} です。ただし、PHP では、多くのエラー表示とエラー終了も提供しています。
$info= "エラー番号: $error_leveln"; $info.= "エラーメッセージ: $error_messagen"; $info.= '発生時刻:'.date('Y-m-d H:i:s'); $ファイル名='aa.txt'; if(!$fp=fopen($filename,'a')){

'ファイルの作成'.$filename.'失敗しました'; }
if(is_writeable($filename)){
if(!fwrite($fp,$info)){
echo 'ファイルの書き込みに失敗しました'; } その他 {
echo 'エラーメッセージは正常に記録されました'; }
fclose($fp); } その他 {
echo 'ファイル'.$ファイル名.'書き込み不可'; }
終了(); }
set_error_handler('myerror',E_WARNING); $fp=fopen('aaa.txt','r'); ?>




1 2



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

www.bkjia.com

tru​​e

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

技術記事

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!