エラー

エラーメッセージ

エラー対策の目的

 状態:-  閲覧数:3,377  投稿日:2016-06-21  更新日:2016-08-03  
大きく2つに分かれる
1. デバッグ→エラー箇所及びその原因を突き止める
2. 例外処理を行い、エラー発生時における不具合を防ぐ

※何れにせよ、「E_WARNING」「E_NOTICE」「E_STRICT」以外は、最終的には処理中断を防ぐことは出来ない


エラー分類


エラーは大きく3つに分類することができる

エラー分類一覧
・エラーを3つに分類
エラー発生のタイミング エラーの種類 出力エラーメッセージ 内容 実行継続の可否
スクリプト実行中 警告・注意 Warning Noticeなど 下記以外 実行は継続
スクリプト実行中 致命的 Fatal Error など PHPの内部的なメモリ確保に関するエラー 実行は中断
コンパイル中 解析・構文 Parse error syntax error PHPの文法を間違っている場合 プログラムのコンパイル時にエラーが発生するため、1行も実行されることなく終了


エラーの種類

 閲覧数:642 投稿日:2016-06-21 更新日:2016-07-26 

主なエラー


よくあるエラーの種類
・一覧
- 出力エラーメッセージ 内容 処理継続 捕捉
E_ERROR Fatal error: 実行時の重大なエラー(未定義関数の使用など) × -
E_WARNING Warning: 実行時の警告(関数へ渡す引数が不正など) -
E_PARSE Parse error: 実行以前の問題(文法ミスなど) × -
E_NOTICE Notice: 実行時の通知(未定義変数の参照など) -
E_STRICT Strict Standards: 厳格チェックの通知(PHP5) -


よくあるエラー例

 閲覧数:685 投稿日:2016-07-04 更新日:2016-07-19 

Warning


一覧
- メッセージ 内容 処理継続 捕捉
ファイルエラー - ファイルオープンエラー set_error_handler()
register_shutdown_function()
0 除算 Division by zero 0 除算 set_error_handler()
register_shutdown_function()
引数不正 array_reverse() expects parameter 1 to be array, string given 関数へ渡す引数が不正。引数として、配列を渡すべきなのに、文字列を渡している set_error_handler()
register_shutdown_function()


Fatal error


一覧
- メッセージ 内容 処理継続 捕捉
未定義関数 - 未定義関数呼び出し × register_shutdown_function()
例外 Uncaught exception キャッチされない例外 × register_shutdown_function()


Parse error


一覧
- メッセージ 内容 処理継続 捕捉
セミコロン syntax error, unexpected T_ECHO, expecting ',' or ';' セミコロン(;)の付け忘れ × ×
括弧 syntax error, unexpected ';', expecting ')' 括弧の対応があっていない × ×


以下のエラータイプは、ユーザ定義の関数では扱えません

 閲覧数:685 投稿日:2016-07-28 更新日:2016-08-01 

ユーザ定義関数では取り扱い不可なエラータイプ


set_error_handler()は利用できない。register_shutdown_function()を利用
・E_ERROR
・E_PARSE
・E_CORE_ERROR
・E_CORE_WARNING
・E_COMPILE_ERROR
・E_COMPILE_WARNING
set_error_handler() がコールされたファイルで発生した 大半の E_STRICT


set_error_handler() と register_shutdown_function() の両方を利用する場合


register_shutdown_function() の呼び出し先関数にて、set_error_handler()で捕捉できないエラー定数のみを指定
<記述例>
switch($error['type']){
 case E_ERROR://エラー定数(エラー出力レベルビット値)
 case E_PARSE:
 case E_CORE_ERROR:
 case E_CORE_WARNING:
 case E_COMPILE_ERROR:
 case E_COMPILE_WARNING:



Fatal error: Uncaught exception 'ImagickException' with message 'WriteBlob Failed

Desktop applications only support the oauth_callback value 'oob'

コメント投稿(ログインが必要)



類似度ページランキング
順位 ページタイトル抜粋
1 エラー 100
2 エラー 100
3 エラーレベル 67
4 エラーメッセージ 55
5 エスケープ 50
6 エラー出力レベル設定 46
7 オーバーライド 40
8 ラッパークラス 40
9 クラス 33
10 ソート 33
11 エスケープシーケンス 31
12 スコープ 29
13 メンバー 29
14 リソース型 25
15 クラス定数 25
16 クロージャ 25
17 ローカル変数 22
18 クラスの継承 22
19 例外ハンドラ 22
20 グローバル変数 20
2025/2/06 11:10 更新
週間人気ページランキング / 1-30 → 2-5
順位 ページタイトル抜粋 アクセス数
1 Parse error: syntax error, unexpected 'public' (T_PUBLIC) | Parse error(エラーメッセージ) 10
2 ブラウザを閉じたらセッションデータはどうなるの? | セッション 9
3 curl で Cookie を使用する 4
3 Fatal error: Access level to ▲::$△ must be protected (as in class ●) or weaker | Fatal error(エラーメッセージ) 4
3 PHPで定数を定義する方法は2種類ある / 配列定数の定義 4
4 コード例 … 「例外処理」はネストすることができる 3
4 Warning: PDO::query(): LOAD DATA LOCAL INFILE forbidden | Warning(エラーメッセージ) 3
4 http_build_queryとは? / 構文 /パラメータ 3
4 Mailer Error: SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting | エラーメッセージ 3
5 Fatal error: Cannot redeclare 関数名() (previously declared in ファイル名:○○) in ファイル名 | Fatal error(エラーメッセージ) 2
5 Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[28000] [1045] Access denied for user 'データベースユーザー名'@'localhost' (using password: YES)' | phpMyAdmin(データベース関連) 2
5 ( ! ) Fatal error: Uncaught PDOException: SQLSTATE[HY093]: Invalid parameter number: parameter was not defined | Fatal error(エラーメッセージ) 2
5 new clone違い | 演算子 2
5 オブジェクト関係マッピング | データベース関連 2
5 array_filter | 配列 2
6 Fatal error: Uncaught Error: Call to a member function modify() on string | Fatal error(エラーメッセージ) 1
6 Fatal error: require_once(): Failed opening required 'PEAR.php' | Fatal error(エラーメッセージ) 1
6 セッション単位 | セッション 1
6 htmlspecialchars / htmlentities / addslashes / mysql_real_escape_string / mysqli_real_escape_string | セキュリティ 1
6 dirname() / (__FILE__ ) / basename( dirname( __FILE__ ) ); | 関数 1
2025/2/6 1:02 更新