2012-11-29 25 views
5

Tôi muốn chặn tất cả các lỗi có thể xuất hiện trong tập lệnh đăng nhập VBS của tôi.Ngăn chặn lỗi cho toàn bộ tập lệnh

Tôi có thể bao quanh kịch bản WHOLE 500 dòng với:

On Error Resume Next 

'[... whole script (~500 lines of code) ...] 

On Error GoTo 0 

Trả lời

7

Bạn thể làm điều đó - thậm chí không có dòng OEG0 - nhưng bạn không nên, bởi vì kịch bản sẽ tiếp tục thực hiện dòng i. .. cuối cùng, ngay cả khi một lỗi trong dòng i-1 vô hiệu hóa tất cả các giả định của bạn về các điều kiện tiên quyết cần thiết của các hành động trong các dòng đó. Chiến lược của bạn có thể so sánh với việc lái xe bằng mắt nhắm để tránh bị lóa mắt bởi đèn pha của những chiếc xe khác.

Nếu bạn không thể làm lỗi resticted cục bộ xử lý cho những hành động được lựa chọn -

... 
On Error Resume Next 
    risky_action 
    save Err 
On Error GoTo 0 
If ErrorOccurred Then 
    something sensible 
    If can't continue Then 
     WScript.Quit 4711 
    End If 
End If 
... 

cố gắng để nhận được ngay với

Sub Main() 
    ... you 500 lines ... 
End Sub 

On Error Resume Next 
    Main 
    If Err.Number Then 
    WScript.Echo "aborted" 
    WScript.Quit 4711 
    End If 

Cách tiếp cận này đảm bảo rằng các dòng sau khi một lỗi sẽ không được thực thi.

+2

Bạn có phải là một vị thần VBS không? –

+1

@JonathanRioux - không, bởi vì sau đó tôi đã tạo VBScript để tất cả các loại lỗi sẽ là không thể. –

+0

Vì vậy, chết tiệt thật! Vì vậy, bạn chỉ là một anh chàng? –

Các vấn đề liên quan