推奨:ASPチュートリアル:ASPスクリプトプログラムを初めて学習なぜスクリプト言語を学ぶのですか? ASPとスクリプト言語の関係は何ですか?まず、ASPが貴重なものについて話しましょう。 ASPは、インタラクティブなWebページを作成して強力に構築するために使用できるサーバー側のスクリプト環境であるMicrosoft Active Serverページの略語です。
ASPエラー処理
ASPは非常にシンプルであるため、多くの開発者はエラー処理について考えていません。エラー処理により、アプリケーションがよりリーズナブルになります。 ASPで書かれた多くの商用Webサイトを見てきましたが、そのほとんどはエラー処理を無視しています。
間違ったタイプ
3つの主なエラータイプがあります。
コンパイルエラー:
この種のエラーは、コード構文の問題のために一般的に発生します。コンピレーションエラーのため、動詞ASPは実行を停止しました。
エラーを実行します
このエラーは、ASPを実行する準備ができたときに発生します。たとえば、変数に値を割り当てようとしますが、変数で許可されたスコープを超えています。
論理エラー
論理エラーを検出するのが最も困難です。この種のエラーは、多くの場合、コンピューターでは発見できない構造的エラーです。これには、コードを徹底的に確認する必要があります。
コンピレーションエラーは通常、論理エラーとともに発生し、一般に表示される可能性があるため、心配しているのは操作エラーです。それはすべてASPの操作を終了し、ユーザーには非常に友好的でないテキストの束を残します。
では、操作エラーにどのように対処しますか! ?最初に見てみましょう。 ASPによって提供される唯一のエラーコマンド---エラー履歴書について次に(ASPの次のステートメントがエラー履歴書のみがあることを初心者に思い出させたいと思いますが、エラー履歴書GOTOステートメントはありません)
ON ERROR Resume Nextステートメントを使用しないと、すべての実行エラーが発生します。これは致命的であり、ユーザーにエラーコードが表示され、ASPプログラムも停止します。
これがエラーコードです:
| 以下は引用されたコンテンツです。 ODBCドライバーエラー80004005のMicrosoft OLE DBプロバイダー [Microsoft] [ODBC Driver Manager]データソース名が見つからず、デフォルトのドライバーが指定されていません /test.asp、60行 |
プログラムの上部でON ERROR Resume Nextステートメントを使用すると、すべてのエラーが無視され、プログラムは次のステートメントを自動的に実行します。このようにして、プログラムは完全に実行され、ユーザーはエラーが発生した後にエラーメッセージが表示されません。しかし、この方法では不利な点もあります。つまり、プログラムが想像するように実行されない場合、何が間違っているのかを知ることは難しいので、必要に応じてエラーに対処する必要があります。
取り扱いエラー
ASPでは、エラーに対処する最良の方法は、エラーを処理するためにプログラムの下部にコードを配置することです。また、すべてのASPプログラムでバッファーを使用することをお勧めします。このようにして、エラーが発生した場合、ページは停止し、ページコンテンツがクリアされ、ユーザーがエラーメッセージが表示されず、あなたに関する苦情が少なくなります!これが例です:
| 以下は引用されたコンテンツです。 <% 'バッファーをtrueに設定します Response.buffer = true 'エラー処理を開始します エラーの再開時に次に再開します %> <% 'エラー処理 err.number <> 0の場合 'ページをクリアします Response.Clear 'ユーザーにエラーメッセージを表示します %> <html> <head> <title> </title> </head> <body bgcolor =#c0c0c0> <font face = arial>このASPページの実行でエラーが発生しました<br> 次の情報をサポートデスク<P>に報告してください <b>ページエラーオブジェクト</b> <br> エラー番号:<%= err.Number%> <br> エラーメッセージ:<%= err.description%> <br> エラーファイル:<%= err.source%> <br> エラーライン:<%= err.line%> <br> </font> </body> </html> <%end if> |
上記のように、最初にエラーの再開を次に設定して、エラーがプログラムの実行に影響しないようにします。
エラー処理とデータベース
エラー処理にデータベースを追加することの実行は非常に複雑です。データベースにレコードを追加する多くのコマンドを備えたプログラムがある場合、プログラムの下部で挿入/更新が実行された場合、エラーが再び発生した場合、それは終了します!データベースにエラーメッセージを追加します。次にエラー履歴書で使用したため、すべてのエラーは無視されました!以前にエラーが発生した場合でも、プログラムはデータベースにデータを追加します。
この状況を避けるために、最初にいくつかのトリックを行う必要があります。それに対処する正しい方法は次のとおりです。
| 以下は引用されたコンテンツです。 err.number = 0およびobjconnection.errors.count = 0の場合 'ステートメントは、エラーがないためにここでのみ実行できます rstrosults = dbdata.execute(txtsql)をset ifを終了します |
より高度なソリューション
エラーが発生した場合、より多くのエラーメッセージを表示することもできます。以下は、データベースとページの両方のエラーを処理する例です。それにより、プログラムのすべてのエラーを一度に発見できます。
| 以下は引用されたコンテンツです。 <% err.number <> 0の場合 Response.Clear case err.numberを選択します ケース8 '間違った番号を指定します 'ここでカスタムエラーをトラブルシューティングします ケース他のケース '一般的なエラー isobject(objconnection)の場合 objconnection.errors.count> 0の場合 %> <b>データベース接続オブジェクト</b> <% intloop = 0からobjconnection.errors.count -1%> エラー番号:<%= objconnection.errors(intloop).Number%> <br> 説明:<%= objconnection.errors(intloop).description%> <br> 出典:<%= objconnection.errors(intloop).source%> <br> sqlState:<%= objconnection.errors(intloop).sqlstate%> <br> NativeRerr:<%= objconnection.errors(intloop).nativeerror%> <p> <%次へ ifを終了します ifを終了します err.number <> 0の場合 %> <b>ページエラーオブジェクト</b> <br> エラー番号<%= err.Number%> <br> エラー説明<%= err.description%> <br> ソース<%= err.source%> <br> linenumber <%= err.line%> <p> <% ifを終了します [選択]を終了します ifを終了します %> |
上記の例では、データベースで発生する多くの問題に対処することができます。これは、毎日のプログラミングでも一般的に使用されています。また、特定のエラーを処理できるSelect Case Statementを確認する必要があります。
リダイレクトとエラー処理
注意すべきことの1つは、よく使用するリダイレクトオブジェクトです。ページにリダイレクトオブジェクトが表示されると、エラー処理がその意味を失います。したがって、次のように、回す前に対処する必要があります。
| 以下は引用されたコンテンツです。 err.number = 0およびobjconnection.errors.count = 0の場合 Response.Clear Response.Redirect URLはこちら ifを終了します |
コードをよりきれいにします
コードをよりきれいにするには、最初にファイルを含むエラー処理ファイルを配置します。これにより、任意のファイルで使用できます。これは変更するのにも便利です。
プログラムの上部に(もちろん言語宣言の後)に、ander resumeの次のステートメントを追加します。
SQLを実行する前にエラーチェックを行います。
リダイレクトを使用する前に、エラー処理も必要でした。
コードの上部にファイルを含むエラーを処理します。
共有:ASPプログラムは、パラメーター値を保存するページネーション関数を実現します以下は参照されているコンテンツです:<% '' '' 'コールexample'dim int_rpp、int_start、int_shownumberli