Asp組件初級入門與精通系列之六

來源:互聯網
上載者:User

錯誤處理

如果頁面出錯,而沒有對錯誤的處理,那麼頁面會顯示一個使用者可能看不懂的錯誤。

在asp指令碼中可以使用

On Error Resume Next

……

if Err.Number<>0 then

Response.Write Err.Description

End if

但是如果組件中出錯呢?這種方法可以捕獲錯誤,但是具體的錯誤如何知道呢?

我們可以在組件中加入錯誤處理,來返回錯誤,這樣可以容易的看到更加詳細的出錯資訊,有助於我們排除錯誤。

 

使用Err.Raise, Raise 被用來產生執行階段錯誤

開啟vb6,建立Activex Dll工程。工程名修改為fCom,類名修改為fC6

Option Explicit

 

Public Sub showerror1()

On Error GoTo ErrorHandle

Dim i As Double

i = 1 / 0

ErrorHandle:

Err.Raise Err.Number, Err.Source, Err.Description

End Sub

‘產生自訂的錯誤

Public Sub showerror2()

    Err.Raise 600, "自己定義的錯誤600", "這是描述自己程式的錯誤"

End Sub

 

Ok,一個組件就寫好了,點擊菜單->檔案->產生fCom.dll檔案

確定,在目錄下就會有fCom.dll檔案

 

測試

開啟visual interdev6.0,產生一個asp檔案

 

<%@ Language=VBScript %>

<HTML>

<BODY>

<%

‘下面這一句很重要

on error resume next

set obj=server.CreateObject("fCom.fc6")

obj.showerror1()

‘如果沒有錯誤處理,就會產生一個出錯的介面,很不專業

‘從 0–512 的範圍保留為系統錯誤;從 513–65535 的範圍可以用做使用者定義的錯誤。

‘如果是保留錯誤,那麼組件內錯誤號碼和頁面處理的錯誤號碼是相一致的

if err.number <>0 then

Response.Write "錯誤資訊" & err.number & err.Description

end if

Response.Write "<br>"

 

‘如果是使用者定義的錯誤,那麼在頁面中可以分別進行處理

obj.showerror2()

if err.number<>0 then

       if err.number =600 then

              Response.Write err.number & err.Source  & err.Description

       end if

end if

 

%>

 

</BODY>

</HTML>

 

配置好虛擬目錄,在ie中執行此asp檔案,得到結果如下:

 

錯誤資訊11除數為零
600自己定義的錯誤600這是描述自己程式的錯誤

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.