2017-11-07 4 views
1

WinSCP를 사용하는 SFTP를 통해 일부 파일을 전송하는 스크립트가 있습니다.PowerShell에서 "catch [Exception]"및 "catch"사이에 차이가 있습니까?

스크립트의 요약 :

$transferfiles = @("filename 1" "filename 2") 

foreach ($file in $transferfiles) { 
    $file 
    $transferResult = $session.PutFiles($file, "/upload/TEST/", $False,$transferOptions) 
    try { 
     $transferResult.Check() 
    } 
    catch [Exception]{ 
     Write-Host "$file was not transferred." 
    } 
} 
난 그냥 [Exception]를 사용할 필요가 있는지 알고 싶어

? catch 그 자체가 작동하지 않는 이유는 무엇입니까?

감사

+1

왜 두 개의'try' 블록을 사용하고 있습니까? '$ session'이란 무엇입니까? –

+0

다른 지점에서 오류를 잡아야합니다. $ 세션은 WINSCP 초기화의 일부입니다 - 개인 정보가 포함되어 있기 때문에 모든 정보를 복사 할 수 없습니다. – user3431504

+2

'catch [Exception] {}'은'catch {}'와 실질적으로 동일하며 둘 다 작동해야합니다. '$ TransferResult.Check()'는 [종료되지 않는 오류]를 던집니까 (https://blogs.technet.microsoft.com/heyscriptingguy/2015/09/16/understanding-non-terminating-errors-in-powershell/))? –

답변

0

catch [Exception]catch 동일합니다.

따라서 catch [Exception]을 사용할 필요가 없습니다.


난 그냥 catch 사용하도록 모든 공식 WinSCP .NET assembly examples를 수정했습니다.