PDA

View Full Version : Nói về bẫy lỗi



lovely
28-09-2002, 18:39
Các bạn làm hộ mình 1 thủ tuc bẫy lỗi : ( nghe có vẻ hơi chuối )
Khi gặp lỗi thì donothing

KEM_WALL
28-09-2002, 19:10
bạn sử dụng câu lệnh On Error
vd
sub BayLoi1()
on error resume next
dim Arr(10)
arr(11) = 0
arr(0) = 0
end sub
sub BayLoi2()
on error goto ErrorCatch
dim arr(10)
arr(11) = 0
errorcatch :
msgbox"error"
end sub
:)

vth_bk
29-09-2002, 09:22
+khi gặp lỗi thì donothing: on error goto <label>
<label> đặt cuối sub hoặc function
+khi gặp lỗi không báo mà vẫn tiếp tục chạy chương trình:

vth_bk
29-09-2002, 09:24
xin lỗi, tui đang post bài thì nhấn lộn nút, bây giờ post tiếp:
+khi gặp lỗi không báo mà vẫn tiếp tục chạy chương trình:
on error resume next
hoặc: on error goto 0

nnh
29-09-2002, 10:13
này các bác, nói về bẫy lỗi như thế hơi hẹp, mơ rộng một chút được không. Có ai biết cách bẫy lỗi và xử lý lỗi trong hộp thoại open dialog (common dialog) khi người dùng nhấn cancel mà không chọn hoặc có chọn dữ liệu . Giúp tôi với.

Scorpion
29-09-2002, 12:50
nnh nói rõ hơn chút di nhe!

quangvu
29-09-2002, 14:35
To nnh : Bạn có thể áp dụng phương pháp bẩy lỗi sau
Public Sub X( . . . )
On Error GoTo X_Error :
. . . . .
X_Error :
frmMsgBox.Y . . .
hoặc
Z.z(. . .)
End Sub

Hình như ít ai dùng Form ,Lớp hay Đối Tượng để bắt lỗi ,mặc dù phương pháp này rất hay.Tôi rất "khoái" dùng.

*** Tôi cảm thấy không nên dùng "resume" hay "resume next" để bẩy lỗi trong chương trình (có thể dùng nó để tìm lỗi trong quá trình khử lỗi) ,các bạn có thể cho ý kiến.Thank.

quatban
29-09-2002, 17:34
Private Function OpenDialog() as String
On error goto ErrHandle
cmdOpenDialog.CancelError=True
.....
cmdOpenDialog.OpenFile
OpenDialog=cmdOpenDialog.FileName
Exit Function
ErrHandle:
MsgBox "Bạn chưa chọn file", vbInformation+vbOkOnly,"Lỗi chọn file"
OpenDialog=vbNullString
End Function

Nicky
30-09-2002, 14:51
Thực ra để xem thử người dùng có bấm Cancel không có thể làm như sau :
If cmdOpenDialog.Filename = "" Then .....
Việc bẫy lỗi trong VB cũng rất hay. Bạn có thể kiểm tra lỗi đó là lỗi gì bằng lớp Err.Errornumber
Có một điều là bạn phải đặt câu bẫy lỗi on error goto ... ở đầu thủ tục he..he.. lúc trước em cứ đặt câu này ngay sau nơi có lỗi cơ đấy ..lol...

nnh
26-10-2002, 11:38
anh quatban này, thế khi nào gọi cái thủ tục opendialog, đó chỉ là thủ tục xử lý khi gặp lỗi

quatban
26-10-2002, 11:57
Khi nào gọi à? Khi nào mà mình ....cần mở hộp thoại OpenDialog. Đây là hàm chứ không phải thủ tục.