錯(cuò)誤處理
如果頁(yè)面出錯(cuò),而沒(méi)有對(duì)錯(cuò)誤的處理,那么頁(yè)面會(huì)顯示一個(gè)用戶可能看不懂的錯(cuò)誤。
在asp腳本中可以使用
On Error Resume Next
……
if Err.Number<>0 then
Response.Write Err.Description
End if
但是如果組件中出錯(cuò)呢?這種方法可以捕獲錯(cuò)誤,但是具體的錯(cuò)誤如何知道呢?
我們可以在組件中加入錯(cuò)誤處理,來(lái)返回錯(cuò)誤,這樣可以容易的看到更加詳細(xì)的出錯(cuò)信息,有助于我們排除錯(cuò)誤。
使用Err.Raise, Raise 被用來(lái)生成運(yùn)行時(shí)錯(cuò)誤
打開(kāi)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
‘生成自定義的錯(cuò)誤
Public Sub showerror2()
Err.Raise 600, "自己定義的錯(cuò)誤600", "這是描述自己程序的錯(cuò)誤"
End Sub
Ok,一個(gè)組件就寫好了,點(diǎn)擊菜單->文件->生成fCom.dll文件
確定,在目錄下就會(huì)有fCom.dll文件
測(cè)試
打開(kāi)visual interdev6.0,生成一個(gè)asp文件
<%@ Language=VBScript %>
<HTML>
<BODY>
<%
‘下面這一句很重要
on error resume next
set obj=server.CreateObject("fCom.fc6")
obj.showerror1()
‘如果沒(méi)有錯(cuò)誤處理,就會(huì)產(chǎn)生一個(gè)出錯(cuò)的界面,很不專業(yè)
‘從 0–512 的范圍保留為系統(tǒng)錯(cuò)誤;從 513–65535 的范圍可以用做用戶定義的錯(cuò)誤。
‘如果是保留錯(cuò)誤,那么組件內(nèi)錯(cuò)誤號(hào)和頁(yè)面處理的錯(cuò)誤號(hào)是相一致的
if err.number <>0 then
Response.Write "錯(cuò)誤信息" & err.number & err.Description
end if
Response.Write "<br>"
‘如果是用戶定義的錯(cuò)誤,那么在頁(yè)面中可以分別進(jìn)行處理
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中執(zhí)行此asp文件,得到結(jié)果如下:
錯(cuò)誤信息11除數(shù)為零 600自己定義的錯(cuò)誤600這是描述自己程序的錯(cuò)誤
|
溫馨提示:喜歡本站的話,請(qǐng)收藏一下本站!