関数のエラーをメイン関数に伝播させずに処理するにはどうすればよいですか?中Powershellの関数内のトラップとハンドルのエラー
function main() {
trap {
"main caught it too!"
}
subroutine
}
function subroutine() {
trap {
"subroutine caught error"
Break
}
1/0
}
main
結果:
subroutine caught error
main caught it too!
Attempted to divide by zero.
...
私はそれが自分の誤りだと私はグローバルなエラー処理の設定に$ErrorActionPreference
を変更したり、-ErrorAction
パラメータを設定するには、ユーザーに依存したくない処理するためにサブルーチンたいです。
'Break' - >' Continue' – PetSerAl
何をしますか休憩 - >続ける? – 4c74356b41
@ 4c74356b41つまり、OPが 'Break'を' Continue'に変更する必要があることを意味します。なぜなら、 'trap'の' Break'は実際にはエラーハンドラがそれを処理しない限り、エラーをスクリプトが終了させるべきだからです。 – PetSerAl