ASPに精通している場合は、非常にシンプルであることがわかります。そのため、多くの開発者はエラーに対処する方法を考えません。 ASPで書かれた商用Webサイトのほとんどは、エラーを無視しています。それでは、今すぐASPエラーに対処する方法を理解しましょう。
簡単な紹介
ASPは非常にシンプルであるため、多くの開発者はエラー処理について考えていません。エラーの正しい処理により、アプリケーションがよりリーズナブルになります。 ASPで書かれた多くの商用Webサイトを見てきましたが、そのほとんどはエラー処理を無視しています。
3つの主なエラータイプがあります。
コンパイルエラー:
この種のエラーは、コード構文の問題のために一般的に発生します。
ASPは、コンピレーションエラーのために実行を停止しました。
エラーを実行します
このエラーは、ASPを実行する準備ができたときに発生します。
たとえば、変数に値を割り当てようとしますが、変数で許可されたスコープを超えています。
論理エラー
論理エラーを検出するのが最も困難です。この種のエラーは、多くの場合、コンピューターでは発見できない構造的エラーです。
これには、コードを徹底的に確認する必要があります。
コンピレーションエラーは通常、論理エラーとともに発生し、一般に表示される可能性があるため、心配しているのは操作エラーです。それはすべてASPの操作を終了し、ユーザーには非常に友好的でないテキストの束を残します。
では、操作エラーにどのように対処しますか! ?まず、ASP -ASPの履歴書について私たちに提供された唯一のエラーコマンドを見てみましょう(エラーの履歴書のみがASPの次のステートメントのみがあり、エラー履歴書がgotoステートメントにないことを初心者に思い出させたいと思います)。エラーで次のステートメントを再開しない場合、すべての操作エラーが発生します。これは致命的であり、エラーコードがユーザーに「表示」され、ASPプログラムも停止します。
これがエラーコードです:
ODBCドライバーエラー80004005のMicrosoft OLE DBプロバイダー
[Microsoft] [ODBC Driver Manager]データソース名が見つからず、デフォルトのドライバーが指定されていません
/test.asp、60行
プログラムの上部でON ERROR Resume Nextステートメントを使用すると、すべてのエラーが無視され、プログラムは次のステートメントを自動的に実行します。このようにして、プログラムは完全に実行され、ユーザーはエラーが発生した後にエラーメッセージが表示されません。しかし、この方法では不利な点もあります。つまり、プログラムが想像するように実行されない場合、何が間違っているのかを知ることは難しいので、必要に応じてエラーに対処する必要があります。
取り扱いエラー
ASPでは、エラーに対処する最良の方法は、エラーを処理するためにプログラムの下部にコードを配置することです。また、すべてのASPプログラムでバッファーを使用することをお勧めします。このようにして、エラーが発生した場合、ページは停止し、ページコンテンツがクリアされ、ユーザーがエラーメッセージが表示されず、あなたに関する苦情が少なくなります!これが例です:
<%@言語= "vbscript"%>
<% 'バッファーを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>
<%end if
[選択]を終了します
ifを終了します
%>
上記の例では、データベースで発生する多くの問題に対処することができます。これは、毎日のプログラミングでも一般的に使用されています。また、特定のエラーを処理できるSelect Case Statementを確認する必要があります。
リダイレクトとエラー処理
注意すべきことの1つは、よく使用するリダイレクトオブジェクトです。ページにリダイレクトオブジェクトが表示されると、エラー処理がその意味を失います。したがって、次のように、回す前に対処する必要があります。
err.number = 0およびobjconnection.errors.count = 0の場合
Response.Clear
Response.redirect?lt; url here>?
ifを終了します
コードをよりきれいにします
コードをよりきれいにするには、最初にファイルを含むエラー処理ファイルを配置します。これにより、任意のファイルで使用できます。これは変更するのにも便利です。
プログラムの上部に(もちろん言語宣言の後)に、ander resumeの次のステートメントを追加します。
SQLを実行する前にエラーチェックを行います。
リダイレクトを使用する前に、エラー処理も必要でした。
コードの上部にあるファイルを含むエラーを処理させてください
これは、ASPエラー処理方法のコンテンツの終わりです。この記事の内容が、すべての人の勉強や仕事に役立つことを願っています。