問題タブ [custom-error-handling]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - 参考 - このエラーは PHP で何を意味するのでしょうか?
これは何ですか?
これは、PHP のプログラミング中に発生する可能性があり、それらを修正する手がかりがない警告、エラー、および通知に関する多くの回答です。これはコミュニティ Wiki でもあるため、このリストへの追加と維持に参加するように誰でも招待されています。
どうしてこれなの?
「ヘッダーは既に送信されています」や「オブジェクト以外のメンバーを呼び出しています」などの質問は、スタック オーバーフローで頻繁に発生します。これらの質問の根本原因は常に同じです。したがって、これらの質問に対する回答は通常、それらを繰り返してから、特定のケースでどの行を変更するかを OP に示します。これらの回答は、OP の特定のコードにのみ適用されるため、サイトに価値を追加しません。同じエラーを抱えている他のユーザーは、ローカライズされすぎているため、解決策を簡単に読み取ることができません。根本的な原因を理解すれば、エラーを修正するのは簡単なので、これは悲しいことです。したがって、このリストでは、ソリューションを一般的な方法で説明しようとしています。
ここで何をすべきですか?
あなたの質問がこれと重複しているとマークされている場合は、以下のエラー メッセージを見つけて、コードに修正を適用してください。回答には通常、一般的な回答だけでは明確でない場合に備えて、調査するための追加のリンクが含まれています。
貢献したい場合は、「お気に入り」のエラー メッセージ、警告または通知、回答ごとに 1 つずつ、それが何を意味するかについての簡単な説明 (マニュアル ページで用語を強調表示するだけであっても)、考えられる解決策またはデバッグ アプローチを追加してください。価値のある既存の Q&A のリスト。また、既存の回答を自由に改善してください。
リスト
- 何も見えません。ページは空白です。(ホワイト ページ/スクリーン オブ デスとも呼ばれます)
- コードが実行されない/PHP コードの一部のように見えるものが出力される
- 警告: ヘッダー情報を変更できません - ヘッダーは既に送信されています
- 警告: mysql_fetch_array() は、パラメーター 1 がリソースであると想定します。ブール値が与えられた別名
です 警告: mysql_fetch_array(): 提供された引数は、有効な MySQL 結果リソースではありません - 警告: [関数]は、パラメーター 1 がリソースであると想定しています。ブール値が指定されています
- 警告: [関数] : ストリームを開けませんでした: [理由]
- 警告: open_basedir 制限が有効です
- 警告: ゼロ除算
- 警告: 無効な文字列オフセット 'XXX'
- 警告: count(): パラメータは配列または Countable を実装するオブジェクトでなければなりません
- 解析エラー: 構文エラー、予期しない '['
- 解析エラー: 構文エラー、予期しない T_XXX
- 解析エラー: 構文エラー、予期しない T_ENCAPSED_AND_WHITESPACE
- 解析エラー: 構文エラー、予期しない T_PAAMAYIM_NEKUDOTAYIM
- 解析エラー: 構文エラー、予期しない 'require_once' (T_REQUIRE_ONCE)、関数が必要 (T_FUNCTION)
- 解析エラー: 構文エラー、予期しない T_VARIABLE
- 致命的なエラー: XXX バイトの許容メモリ サイズを使い果たしました (XXX バイトを割り当てようとしました)
- 致命的なエラー: 非オブジェクトまたは null でのメンバー関数の呼び出し ...
- 致命的なエラー: 未定義の関数 XXX の呼び出し
- 致命的なエラー: XXX を再宣言できません
- 致命的なエラー: 書き込みコンテキストで関数の戻り値を使用できません
- 致命的なエラー: AAA::BBB() の宣言は CCC::BBB() の宣言と互換性がある必要があります'
- AAA::BBB() の戻り型は CCC::BBB() と互換性があるか、#[\ReturnTypeWillChange] 属性を使用する必要があります
- 致命的なエラー: オブジェクト コンテキストでない場合に $this を使用する
- 致命的なエラー: クラス Closure のオブジェクトを文字列に変換できませんでした
- 致命的なエラー: 未定義のクラス定数
- 致命的なエラー: Uncaught TypeError: Argument #n must be of type x, y given
- 注意: 配列から文字列への変換
- Notice: 非オブジェクト エラーのプロパティを取得しようとしています
- 注意: 未定義の変数またはプロパティ
- 「通知: 未定義のインデックス」または「警告: 未定義の配列キー」
- 注意: 未定義のオフセット XXX [参照]
- Notice: 初期化されていない文字列のオフセット: XXX
- 注意: 未定義の定数 XXX の使用 - 'XXX' と仮定
- MySQL: SQL 構文にエラーがあります。使用する MySQL サーバーのバージョンに対応するマニュアルで、near ... at line ... を使用する正しい構文を確認してください。
- 厳格な基準: 非静的メソッド[<class>::<method>]を静的に呼び出すべきではありません
- 警告: 関数はパラメーター X がブール値/文字列/整数であることを期待しています
- HTTP エラー 500 - 内部サーバー エラー
- 非推奨: 中括弧を使用した配列と文字列のオフセット アクセス構文は非推奨です
また、参照してください。
c# - InfoPath クライアントの Web サービスにカスタム エラー メッセージを表示する
レコードをデータベースに送信するカスタム Web サービスがあります。
テーブルに送信される JF_ID 値は、メイン/ソース テーブルの JF_ID 値を参照します。そのため、ユーザーが存在しない JF_ID を送信しようとすると、「参照整合性違反など」という SQL 例外がキャッチされます。
私のWebサービスは次のようになります。
}
ユーザーによる多数の障害データ エントリが存在する可能性があります。たとえば、ユーザーが整数値ではなく文字列を入力した場合、存在しない JF_ID のエントリを送信しようとすると、参照整合性に違反します。
このようなタイプの SQL 例外がキャッチされたときに、ユーザー フレンドリーなカスタム エラー メッセージ (入力された ID が存在しません。データの挿入に失敗しました!) が Web サービスから渡されるようにするにはどうすればよいですか。最後に、この分かりやすいエラー メッセージを InfoPath クライアントに渡したいと思います。
どうもありがとう。
asp.net - 実行時に web.config によって設定された customError 構成を変更するにはどうすればよいですか?
現在、web.config に次のような customError ノードがあります。
実行時に、redirectMode 属性が ResponseRewrite ではなく ResponseRedirect に設定されているかのようにアプリケーションの動作を変更できるようにしたいと考えています。web.config ファイルを変更せずにこれを実行できる必要があります。これは可能ですか?よろしくお願いします。
javascript - ネイティブ JavaScript エラー コンストラクターの拡張
エラー コンストラクターのプロトタイプを拡張して、JavaScript エラー プロパティを拡張しようとしました。
次に、ログ機能をテストします。
その結果、拡張されていない場合のように、エラー オブジェクトは一部のプロパティ (Firefox など) のみを表示fileName
しますlineNumber
。columnNumber
しかし、最も奇妙なことは、for...in
サイクルがすべてのエラー オブジェクト プロパティを処理できないように見えることです。標準プロパティを警告しようとすると、error.message
通常はメッセージが返されます。
したがって、私のテストの結果は次のとおりです。
- Error コンストラクターは、他のネイティブ コンストラクターとは異なり、そのプロトタイプを通じて拡張できません。
- ループは
for...in
エラー オブジェクトのプロパティをたどることができません。
私は正しいですか?
それについてもっと知るために提案できる興味深い証拠/リソースはありますか?
c++ - デフォルトの sax ハンドラとカスタム エラー ハンドラを含む libxml2
次のように、C++ プログラムで単純な libxml2 パーサーを使用したいと思います。
- デフォルトの sax ハンドラーで問題ありません (実際には、独自のハンドラーを作成する手間を省きたいのですが、カスタムの sax ハンドラーを使用してやりたいことができることは理解しています)。
- パーサーは、任意にインスタンス化できる (おそらくマルチスレッド化された) C++ クラスに埋め込む必要があります。libxml2 パーサー コンテキストはメンバー var として
- libxml2 を使用している他のコンポーネントもありますが、私の制御範囲外です (それらが何をし、どのように libxml2 を使用するかを正確に伝えることはできません)。
- C++ クラスで、stderr に出力するだけでなく、エラーを収集して例外をスローするカスタム エラー ハンドラを使用したい
例:
これが機能しないものです(私のテストと理解に):
- xmlSetStructuredErrorFunc() または xmlSetGenericErrorFunc() を使用し、現在の C++ インスタンスをユーザー データとして設定する
- xmlNewParserCtxt() を使用し、ctx->sax->serror を通常の C++ メソッドに設定します - エラー ハンドラは静的でなければなりません
- 前と同じですが、静的クラスメソッドを使用します-実際には機能しますが、同時にctx-> user_dataを(現在のC++インスタンスの「this」に)設定したい-パーサーがクラッシュし、内部のように見えますlibxml2 の ctx->user_data は、ctx だけが存在するはずの関数を介して渡されます...しかし、それは一貫して発生します。つまり、バグというより機能のように見えます :-)
さて、これを機能させる方法を知っている人はいますか?
多くthx!!!
.htaccess - カスタム 404 エラー ページが 500 エラーを生成している
セキュリティ上の理由から、すべての php ファイルが 404 エラーを生成するようにしてから、次のようにカスタム 404 エラー ページを使用しています。
私が行ったすべてのphpスクリプトは、私が望むようにカスタム404エラーページを返しますが、その下には次のように書かれています:
さらに、ErrorDocument を使用して要求を処理しようとしたときに、500 Internal Server Error エラーが発生しました。
しかし、実際には存在しないページ (たとえばhttp://localhost/Hello/world.html
) に移動すると、必要なエラー ページが表示されます。
私は混乱しています、私は何が間違っていますか。また、カスタム用に php ページを使用できるようにしたいのErrorDocument
ですが、それが可能かどうかはわかりません。
coldfusion - Win2k8 R2 x64 上の ColdFusion 10 で 404 エラーの処理に問題がありますか?
IIS でカスタム エラー ハンドラ (実行 URL) を使用して、Windows 2008 R2 x64 上の ColdFusion 10 で 404 エラーを正しく処理するのに問題があります。以前のバージョンの CF でこれを問題なく実行しました。IIS の Web サイト機能で、「エラー ページ」を開き、すべての 404 エラーに対して「/404.cfm」を実行するように設定します。
私が抱えている問題は、404.cfm ページの出力がブラウザに完全に返されず、ページが正しく読み込まれないことです。何も返ってこないこともあれば、1K を返すこともあれば、もう少し多くを返すこともあります。非常に矛盾しています。
IIS で 404.cfm ハンドラーを設定するだけでなく、Application.cfm 内の onMissingTemplate() メソッドでも呼び出しています。
404.cfmエラー ハンドラ内で、次のように呼び出しています。
...そして、たくさんのものを出力します。
404.cfm で cfheader の呼び出しを削除すると、[ColdFusion リクエストの場合] エラー ハンドラが正しく読み込まれます。これは、IIS を通過するものは何もないためです。代わりに、ColdFusion の onMissingTemplate() メソッドを通過するだけです。しかし、応答ヘッダーには 200 ステータス コードが表示されます。これは問題です。明らかな理由から、404 ステータス コードである必要があります。
cfheader 呼び出しを含めた場合、またはColdFusion 以外のページが要求された場合 (IIS は 404 ステータス コードを生成します)、404.cfm ハンドラーの出力がブラウザーに完全には返されません。IISがアクションを手に入れることに関係があると思います。
CFバグデータベースでこれを報告しましたが、何か間違っているのではないかと思っています。バグはこちら: https://bugbase.adobe.com/index.cfm?event=bug&id=3488063
asp.net-mvc - MVC 4 アプリケーションでのカスタム エラーによる UnauthorizedAccessException の処理
filterConfig 登録内で HandleError 属性を適用することにより、アプリケーションのグローバル エラー処理を有効にしました。
次に、カスタム エラー (web.config) を使用して、サーバー エラーごとにわかりやすいエラー メッセージが表示されることを願っています。
これはほとんどの例外で正常に機能しているようで、カスタム エラー ページ ビュー (共有ビュー フォルダー内の Error.cshtml) が表示されるという期待どおりの動作が得られました。
ただし、スローされたエラーが UnauthorizedAccessException である場合に見られる動作ではないことに最近気付きました。
フィドラーを見ると、この UnauthorizedAccessException 例外が標準の例外と同様にプレーンな 500 内部サーバー エラーを返すことがわかります。
では、なぜ標準例外は私の customError 設定に従っているのに、UnauthorizedAccessException はそうではないのでしょうか?
Aそして、どうすればそれらを同じように動作させることができますか? どちらも本質的にエンド ユーザーに表示されないようにしたいエラーです。
javascript - エラーをトラップしてエラーの詳細をデータベースに保存し、クラシック ASP のカスタム エラー ページにリダイレクトする方法は?
エラーをトラップしてエラーの詳細をデータベースに保存し、クラシック ASP のカスタム エラー ページにリダイレクトする方法は?
Web サイトのすべてのページに ASP ページを含める必要があり、エラーが発生した場合は、そのエラーの詳細を取得し、データベースに保存するか、メール ID にメールして、カスタム エラー ページにリダイレクトします。何か考えがあれば、私を助けてください。