2012-04-17 4 views
1

여러 로컬 컴퓨터에서 실행될 스크립트가 있지만 오류 처리가 수행되지 않았습니다. PowerShell에서 오류 처리를 전혀하지 않았으므로 여기서 완전히 멍청한 반응을 보입니다. 나는 그것에 대해 뭔가 읽었지만 솔직히 나는 빠르고 쉬운 대답을 찾고있다.Powershell : 스크립트에서 오류 처리

Q : 스크립트를 무거운 무게로 만들 수있는 가능한 한 적은 코드로 try/catch와 같은 것이 있습니까? 예, 시도

답변

2

은/캐치 마침내 파워 쉘의 V2에서 사용할 수 있습니다/:

Try{ 
<main code here> 
} 
Catch{ 
write-host $_ #Using the reserved $_ variable which should contain the error string 
} 
Finally{ 
<clean up code here - will execute regardless> 
} 

당신은 당신이 트랩 구조를 사용해야합니다 v1에서는 PowerShell을 사용하도록 제한하는 경우.

+0

PowerShell v2를 사용하고 있습니다. 이 코드로 수행 한 작업은 모든 스크립트를 Try {}에 붙여 넣은 것이고 catch가 지정되지 않은 상태로 남겨 두어 모든 예외를 catch하도록했습니다. (생각한대로) try {}에 새 행을 썼을 때 " sdgsf " catch {}에 지정된 오류 메시지가 표시되지만 다음과 같은 작업을 수행 할 때 "$ username = gc env : usernamejghc "(명령 끝에 jiberish를 썼습니다) 오류가 발생합니다. Get- 내용 : 존재하지 않기 때문에 'Env : \ usernamejghc'경로를 찾을 수 없습니다. 나는 그 주제에 관해 더 많은 것을 읽으려고한다 :이 오류를 처리 할 제안이 있는가? – haakonlu

+0

당신은 $ env : usernamejghc을 의미합니다. 메시지는 정확히 어떻게되는지를 알려줍니다. –

+0

그렇습니다. 그러나 catch 블록이 "catch"하지 않는 이유는 무엇입니까? 이 오류가 그것을 벗어날 경우, 나는 다른 사람도 할 수 있다고 생각하니? – haakonlu

관련 문제