錯(cuò)誤處理和數(shù)據(jù)庫(kù) 在錯(cuò)誤處理中加入數(shù)據(jù)庫(kù)的執(zhí)行是很復(fù)雜的。假若我們有一個(gè)程序,有很多的命令去向數(shù)據(jù)庫(kù)中添加記錄,如果insert/update在程序的最底部執(zhí)行,如果我們前面又錯(cuò)誤發(fā)生,那就完了!我們就會(huì)向數(shù)據(jù)庫(kù)中添加了一個(gè)錯(cuò)誤的信息。因?yàn)槲覀冇昧薕n Error Resume Next 一切的錯(cuò)誤都被忽略了!即使前面出錯(cuò),程序依舊會(huì)向數(shù)據(jù)庫(kù)中添加數(shù)據(jù)的。 為避免這種情況,我們就先得做些手腳,正確處理的方法如下:
If Err.Number = 0 And objConnection.Errors.Count = 0 Then
'這里才能執(zhí)行語(yǔ)句,因?yàn)闆](méi)有錯(cuò)誤 Set rstResults = dbData.Execute(txtSql)
End If
更多高級(jí)的處理辦法 當(dāng)一個(gè)錯(cuò)誤發(fā)生時(shí),你們也可以顯示更多的錯(cuò)誤信息。下面是同時(shí)處理數(shù)據(jù)庫(kù)和頁(yè)面錯(cuò)誤的例子,有了它我們一下就能發(fā)現(xiàn)我們程序中的所有錯(cuò)誤。(由于有些地方我覺(jué)得英文更能說(shuō)時(shí)問(wèn)題,所以沒(méi)有翻譯)。 <% If Err.Number <> 0 Then Response.Clear Select Case Err.Number Case 8 '指定錯(cuò)誤的Number '在這里處理自定義錯(cuò)誤
Case Else '一般錯(cuò)誤
If IsObject(objConnection) Then If objConnection.Errors.Count > 0 Then %>
<B>Database Connection Object</B>
<% For intLoop = 0 To objConnection.Errors.Count - 1 %>