PowerShell/コマンドレットのエラーをTry..Catchする方法
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
開始行:
#navi(../)
* PowerShellのコマンドレットのエラーをTry..Catchする方法 ...
PowerShellのコマンドレットでエラーが発生したときに Try Ca...
しかし、 ''-ErrorAction Stop'' をコマンドレットに設定すれ...
以下にサンプルを記します。
#contents
* 動作確認環境 [#wedfb997]
- Windows 10 22H2
- PowerShell
PS C:\> $PSVersionTable.PSVersion.ToString()
5.1.19041.3636
* コマンドレットのエラーを Catch でトラップするサンプル [...
以下、Get-ChildItem コマンドレットを使った例となります。
** 通常動作 [#f35dc25c]
指定したパスがないのでエラーが表示されます。
PS C:\> $non_existent_path = 'foo'
PS C:\> Get-ChildItem $non_existent_path
Get-ChildItem : パス 'C:\foo' が存在しないため検出できま...
発生場所 行:1 文字:1
+ Get-ChildItem $non_existent_path
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (C:\foo:St...
+ FullyQualifiedErrorId : PathNotFound,Microsoft.Pow...
** Try Catch を試す [#u3dbabfc]
Catch にトラップされず、finallyの処理は実行されました。
***サンプルコード [#f8ea3178]
$non_existent_path = 'foo'
try {
Get-ChildItem $non_existent_path
}
catch {
Write-Host 'catch'
}
finally {
Write-Host 'finally'
}
***実行結果 [#ddfbe93e]
Get-ChildItem : パス 'C:\foo' が存在しないため検出できま...
発生場所 行:3 文字:3
+ Get-ChildItem $non_existent_path
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (C:\foo:Str...
+ FullyQualifiedErrorId : PathNotFound,Microsoft.Powe...
finally
** Try Catch を試す [#qbece2d8]
''-ErrorAction Stop''をコマンドレットに追記して実行すると...
***サンプルコード [#b25ae6bf]
$non_existent_path = 'foo'
try {
Get-ChildItem -ErrorAction Stop $non_existent_path
}
catch {
Write-Host 'catch'
}
finally {
Write-Host 'finally'
}
***実行結果 [#s0f345cb]
catch
finally
* 例外メッセージを取得する [#n6c57518]
以下の構文により Catch にトラップされた例外メッセージを取...
$_.Exception.Message
** サンプルコード [#obc9a559]
Catch に $_.Exception.Message を追記しています。
$non_existent_path = 'foo'
try {
Get-ChildItem -ErrorAction Stop $non_existent_path
}
catch {
Write-Host 'catch'
Write-Host $_.Exception.Message
}
finally {
Write-Host 'finally'
}
** 実行結果 [#w22babbe]
catch
パス 'C:\foo' が存在しないため検出できません。
finally
以上、コマンドレットのエラーを Try Catch でトラップする方...
#br
#br
終了行:
#navi(../)
* PowerShellのコマンドレットのエラーをTry..Catchする方法 ...
PowerShellのコマンドレットでエラーが発生したときに Try Ca...
しかし、 ''-ErrorAction Stop'' をコマンドレットに設定すれ...
以下にサンプルを記します。
#contents
* 動作確認環境 [#wedfb997]
- Windows 10 22H2
- PowerShell
PS C:\> $PSVersionTable.PSVersion.ToString()
5.1.19041.3636
* コマンドレットのエラーを Catch でトラップするサンプル [...
以下、Get-ChildItem コマンドレットを使った例となります。
** 通常動作 [#f35dc25c]
指定したパスがないのでエラーが表示されます。
PS C:\> $non_existent_path = 'foo'
PS C:\> Get-ChildItem $non_existent_path
Get-ChildItem : パス 'C:\foo' が存在しないため検出できま...
発生場所 行:1 文字:1
+ Get-ChildItem $non_existent_path
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (C:\foo:St...
+ FullyQualifiedErrorId : PathNotFound,Microsoft.Pow...
** Try Catch を試す [#u3dbabfc]
Catch にトラップされず、finallyの処理は実行されました。
***サンプルコード [#f8ea3178]
$non_existent_path = 'foo'
try {
Get-ChildItem $non_existent_path
}
catch {
Write-Host 'catch'
}
finally {
Write-Host 'finally'
}
***実行結果 [#ddfbe93e]
Get-ChildItem : パス 'C:\foo' が存在しないため検出できま...
発生場所 行:3 文字:3
+ Get-ChildItem $non_existent_path
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (C:\foo:Str...
+ FullyQualifiedErrorId : PathNotFound,Microsoft.Powe...
finally
** Try Catch を試す [#qbece2d8]
''-ErrorAction Stop''をコマンドレットに追記して実行すると...
***サンプルコード [#b25ae6bf]
$non_existent_path = 'foo'
try {
Get-ChildItem -ErrorAction Stop $non_existent_path
}
catch {
Write-Host 'catch'
}
finally {
Write-Host 'finally'
}
***実行結果 [#s0f345cb]
catch
finally
* 例外メッセージを取得する [#n6c57518]
以下の構文により Catch にトラップされた例外メッセージを取...
$_.Exception.Message
** サンプルコード [#obc9a559]
Catch に $_.Exception.Message を追記しています。
$non_existent_path = 'foo'
try {
Get-ChildItem -ErrorAction Stop $non_existent_path
}
catch {
Write-Host 'catch'
Write-Host $_.Exception.Message
}
finally {
Write-Host 'finally'
}
** 実行結果 [#w22babbe]
catch
パス 'C:\foo' が存在しないため検出できません。
finally
以上、コマンドレットのエラーを Try Catch でトラップする方...
#br
#br
ページ名: