VB 스크립트가 있습니다. 파일에 오류 정보를 기록해야합니다. 오류 번호 오류 설명과 같은 모든 정보를 기록해야하며 하위 루틴에서 오류가 발생합니다.VB 스크립트에서 오류를 처리하는 방법
일부 코드 clausule "오류에"사용 VBScript로 처리 오류에 대한
VB 스크립트가 있습니다. 파일에 오류 정보를 기록해야합니다. 오류 번호 오류 설명과 같은 모든 정보를 기록해야하며 하위 루틴에서 오류가 발생합니다.VB 스크립트에서 오류를 처리하는 방법
일부 코드 clausule "오류에"사용 VBScript로 처리 오류에 대한
에게 알려주십시오. , 오류 처리하는 방법을 3 가지 방법이 있습니다 : 다음 '을 다시 시작
샘플 :
On Error Resume Next '' ignore errors
SomeIgnorableFunction()
On Error GoTo 0 '' removes error ignoring
SomeImportantFunction()
On Error GoTo HandleError '' on error will code jump to specified signal
Dim a
a = 15/0
GoTo Finish '' skips error handling
HandleError:
Dim msg
Set msg = Err.Description & vbCrLf & Err.Number
MsgBox msg
Finish:
'' there is end of sciprt
Thee는 VBScript의 On Error GoTo Handler 기능이 아니며 VBScript의 Goto도 아닙니다. – AnthonyWJones
당신은 사용할 수있다 VBScript를 사용하는 경우 FileSystemObject 및 Error 개체가 있습니다.
다음을 error.vbs에 붙여넣고 실행하십시오. 이 오류는 다음라는 파일에 세부 사항을 기록 발생합니다 C : \ errors.log
Option Explicit
On Error Resume Next ' Potential error coming up
Dim MyArray(5)
MyArray(7) = "BWA HA HA"
If Err.Number <> 0 Then
LogError(Err)
Err.Clear
End If
On Error Goto 0 ' Stop looking for errors
Sub LogError(Details)
Dim fs : Set fs = CreateObject("Scripting.FileSystemObject")
Dim logFile : Set logFile = fs.OpenTextFile("c:\errors.log", 8, True)
logFile.WriteLine(Now() & ": Error: " & Details.Number & " Details: " & Details.Description)
End Sub
오류 등을에 대한 자세한 정보를 얻으려면 다음 ASPError를 사용할 수있다 ASP 페이지를 사용하는 경우 행 번호 등 (CreateObject를 Server.CreateObject로 바꾸십시오).
편집 : .vbs 스크립트에서 오류의 원인이 된 줄 번호를 얻으려면이를 매개 변수로 하위 루틴에 추가 할 수 있습니다.
VBScript는 오류시 goto 레이블을 지원하지 않습니다. 작동하지 않습니다 다음 코드 조각 - :
'오류 고토는 handleError에' '오류에 지정된 신호
희미한 AA = 15/0
고토 마침 점프를 코딩한다'는 오류
를 건너 뜁니다handlingHandleError :
어둡게 msgSet
MSG = & 프로그램 Err.Description vbCrLf,488,오지 Err.Number
있는 MsgBox msgFinish은 : 'sciprt
의 끝이 어떻게 루프 (또는 다른 루프) 내부 전체 하위 또는 기능을 넣고있다'. do 루프 밖에서 오류 처리를 수행하십시오.
private sub BucketList()
do while 1=1
ClimbMountain(top)
if err.Number <> 0 then exit do
SwimOcean(deep)
if err.Number <> 0 then exit do
GiveErrorHandlingToVBS(isNeverGoingToHappen)
if err.Number <> 0 then exit do
exit do
loop
'Error Handler
if err.Number <> 0 then
'handle error
end if
end sub
왜이 기능이 필요하다고 생각하는지 설명하면 더 좋을 수도 있습니다. 솔직히 VBScript 오류 처리가 매우 약한 당신이 지금까지 설명한 내용을 달성하기위한 실질적인 수단이 없습니다. – AnthonyWJones