エラー

エラーメッセージ

エラー対策の目的

 状態:-  閲覧数:3,419  投稿日: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行も実行されることなく終了


エラーの種類

 閲覧数:658 投稿日: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) -


よくあるエラー例

 閲覧数:701 投稿日: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 ')' 括弧の対応があっていない × ×


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

 閲覧数:701 投稿日: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/3/11 3:50 更新
週間人気ページランキング / 3-4 → 3-10
順位 ページタイトル抜粋 アクセス数
1 PHPで定数を定義する方法は2種類ある / 配列定数の定義 5
2 ブラウザを閉じたらセッションデータはどうなるの? | セッション 4
2 curl で Cookie を使用する 4
3 SQLite(エラーメッセージ) カテゴリー 3
3 Fatal error: Call to undefined method MDB2_Error::execute() in ○○ on line △△ | Fatal error(エラーメッセージ) 3
3 PHPにおけるメソッドのオーバーライドについて /「引数の数や型は、親クラスのメソッドと完全に一致していなければなりません。」とは具体的にどういう意味ですか? 3
3 「POSIX正規表現」と「PCRE正規表現」の違い 3
3 Parse error: syntax error, unexpected 'public' (T_PUBLIC) | Parse error(エラーメッセージ) 3
3 session_start() | セッション 3
4 バッファリング | 出力バッファリング制御(関数) 2
4 ブラウザを閉じたらセッションデータはどうなるの? | セッション 2
4 セッション管理が必要な理由は、HTTPプロトコルには状態を保持する機能がないため | セッション 2
4 Fatal error: Uncaught HeadlessChromium\Exception\OperationTimedOut: Operation timed out (3sec) in | Fatal error(エラーメッセージ) 2
4 Fatal error: Access level to ▲::$△ must be protected (as in class ●) or weaker | Fatal error(エラーメッセージ) 2
4 Notice(エラーメッセージ) カテゴリー 2
4 register_shutdown_function | 関数処理 関数 2
5 Fatal error: Uncaught PDOException: SQLSTATE[HY000] [2002] Connection refused | Fatal error(エラーメッセージ) 1
5 コード例 … 「例外処理」はネストすることができる 1
5 親クラスのコンストラクタは自動実行されないから、明示的に呼び出す必要がある 1
5 シリアライズ(シリアル化) | 関数 1
2025/3/11 1:01 更新