2017-11-07 20 views
1

私はWinSCPのを使用してSFTP経由でいくつかのファイルを転送しているスクリプトを持っています。はPowerShellで「キャッチ[例外]」と「キャッチ」との違いはありますか?

スクリプトの概要:

$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

なぜ2つの 'try'ブロックを使用していますか? '$ session'とは何ですか? –

+0

私は異なるポイントでエラーをキャッチする必要があります。 $セッションはWINSCPの初期化の一部です - プライベート接続の詳細が含まれているので、すべての情報をコピーすることはできません。 – user3431504

+2

'catch [例外] {}'は '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を変更しました。

関連する問題