ASPエラーキャプチャのいくつかの一般的な処理方法

4427 ワード

3つの主要なエラータイプがあります.コンパイルエラー:このエラーの発生は一般的にコードの構文問題です.コンパイルエラーにより辞ASPが停止しました.
このエラーは、ASPを実行する準備ができているときに発生します.たとえば、変数に値を付与しようとしたが、その変数が許容する範囲を超えている場合.
論理エラー論理エラーは最も発見されにくい.このようなエラーは常に構造エラーであり、コンピュータでは発見できない.これは私たちのコードを徹底的にチェックする必要があります.コンパイルエラーは一般的に論理エラーとともに発生し、一般的に表示されるため、私たちが心配しているのは実行エラーだけです.ASPの実行を終了し、ユーザーに友好的ではない文字を捨てました.
では、実行エラーをどう処理すればいいのでしょうか!?まず、ASPが唯一私たちに提供してくれたエラーコマンド--On Error Resume Next(ここでは初心者に注意してください.ASPではOn Error Resume Next文しかなく、On Error Resume Goto文はありません)On Error Resume Next文を使用しないと、すべての実行エラーが発生します.これは致命的で、エラーコードがユーザーに「表示」され、ASPプログラムも停止します.
次のエラーコードは、Microsoft OLE DB Provider for ODBC Drivers error 800045[Microsoft][ODBC Driver Management]Data source name not found and no default driver specified/test.asp,line 60 On Error Resume Next文をプログラムの一番上で使用すると、すべてのエラーが無視され、プログラムは自動的に次の文を実行します.これによりプログラムは完全に実行され、エラー後もユーザーはエラー情報を表示しません.しかし、プログラムがあなたの想像通りに実行されなければ、どこが問題なのかを見つけるのが難しいので、必要な場所でエラーを処理しなければなりません.エラーを処理するASPの中で、エラーを処理する最も良い方法はプログラムの最底端にコードを置いてエラーを処理することです.私もASPプログラムごとにバッファを使うことをお勧めします.そうすると、エラーが発生するとページが停止し、ページの内容も消去され、ユーザーはエラーメッセージを見ることができず、あなたたちへの文句も少なくなります.次に例を示します.


  
  0 Then
 '    
 Response.Clear
    '          
  %>
  
 
 
 
    
 <font face="ARIAL">An error occurred in the execution of this ASP page<br/>
 Please report the following information to the support desk<p>
     <b>Page Error Object</b><br/>
        Number: <br/>
         : <br/> 
         : <br/>
        : <br/>
  </p></font>
 
  
 
 
</code></pre> 
 </div> 
 <p>       ,     On Error Resume Next ,                。<br/>  <br/>         <br/>                    。         ,                ,  insert/update         ,           ,    !                   。      On Error Resume Next           !      ,               。<br/>        ,         ,         : </p> 
 <div class="jb51code"> 
  <pre><code>
 If Err.Number = 0 And objConnection.Errors.Count = 0 Then
 
 '        ,      
 Set rstResults = dbData.Execute(txtSql) 
 End If</code></pre> 
 </div> 
 <p>          <br/>         ,              。                  ,                     。(                 ,      )。</p> 
 <p> </p> 
 <div class="jb51code"> 
  <pre><code>
 0 Then
      Response.Clear
      Select Case Err.Number
  Case 8 '     Number
 '           
 
        Case Else   '    
 
   If IsObject(objConnection) Then
       If objConnection.Errors.Count > 0 Then
 %>

              <b>Database Connection Object</b>
 
 
 
             Error No: <br/>
             Description: <br/>
             Source: <br/>
             SQLState: <br/>
             NativeError: <p>
 
  0 Then
 %>
 
           <b>Page Error Object</b><br/>
           Error Number <br/>
           Error Description <br/> 
        Source <br/>
    LineNumber </p><p>
 
 </p></code></pre> 
 </div> 
 <p>                           ,              !         Select Case   ,             。  <br/> Redirect      <br/>            ,        redirect  ,          redirect  ,            。               ,  : </p> 
 <div class="jb51code"> 
  <pre><code>
 If Err.Number = 0 And objConnection.Errors.Count = 0 Then
  
 Response.Clear
 Response.Redirect ?lt;URL Here>?
 
 End If</code></pre> 
 </div> 
 <p>        <br/>           ,                   。               。       。 <br/>           (         )On Error Resume Next  。 <br/>     SQL        。 <br/>   redirect          。 <br/>                   </p> 
 <div class="clearfix"> 
  <span id="art_bot" class="jbTestPos"/> 
 </div> 
</div>
                            </div>
                        </div>