PowerShell の try and catch とは何ですか?
パワーシェル

PowerShell の try and catch とは何ですか?

By Hervé , on 5 7月 2024 , updated on 5 7月 2024 - 1 minute to read
Partager cet article :

PowerShell tr​​y and catch は、スクリプト内のエラーを処理するために使用されるメソッドです。潜在的に問題のあるコードを「try」構造にカプセル化することで、発生したエラーをキャッチして処理し、「catch」ブロックで適切に処理できます。このアプローチは、問題を予測し、制御された方法で処理することで、PowerShell スクリプトの信頼性と堅牢性を向上させるのに役立ちます。

PowerShell での try と catch の使用

ブロック 試して捕まえてください PowerShell の管理メカニズムです。 例外 これにより、エラーを適切な方法で捕捉および管理できるようになります。 自分の そして 効果的。このブロックを使用すると、エラーを生成する可能性のあるコードを実行し、そのようなエラーが発生した場合に採用する動作を定義できます。

ブロック 試す 例外をスローする可能性のあるコードが含まれています。エラーが発生しない場合、コードは通常どおり実行を続けます。ただし、エラーが発生した場合、制御はブロックに移されます。 レスリング。重要なコードセクションは次のとおりです。

ブロック レスリング さまざまな例外タイプを特定の方法で処理するように構成できます。複数のブロックを定義可能 レスリング さまざまな種類のエラーをキャプチャするには:

ブロック ついに はオプションであり、例外がスローされるかどうかに関係なく、体系的に実行されます。これは、リソースを解放したり、クリーンアップ操作を実行したりするためによく使用されます。

トライアンドキャッチを使用する したがって、PowerShell では、次のことができるだけでなく、 エラーを処理する、しかしコードを書くことも 屈強 そして 保守可能例外が適切に処理されるようにします。

トライアンドキャッチの構文

PowerShell で試してキャッチする スクリプト内のエラーを処理するための制御構造です。これにより、コードのセクションを実行し、発生する可能性のある例外やエラーをキャプチャして、特定の方法で対処することができます。この構造は、スクリプトの堅牢性と信頼性を向上させるのに特に役立ちます。

の構文 試して捕まえてください は非常にシンプルで、次の 2 つの主要なブロックで構成されます。



試す { 
    # エラーを生成する可能性がある実行コード 
} 
キャッチ { 
    # エラー時に実行するコード 
} 


ブロック内 試す、エラーを監視するコードを配置します。このブロックでエラーが発生した場合、制御は直ちにブロックに渡されます。 レスリングで、このエラーを適切に処理できます。

複数のブロックを使用して特定の種類のエラーをキャプチャすることも可能です レスリング、 このような :



試す { 
    # 実行するコード 
} 
    # 入出力エラーの処理 
} 
    # 認可エラーの処理 
} 
キャッチ { 
    # 他の種類のエラーの処理 
} 


使用する 試して捕まえてください PowerShell では、エラーをより効率的に処理できるだけでなく、スクリプトの読みやすさと保守性も向上します。

Try and catch によるエラー処理

試して捕まえてください PowerShell のエラー処理には不可欠なメカニズムです。この概念により、スクリプトはコマンドまたはコード ブロックの実行中に発生する可能性のある例外を適切に処理できます。これらのブロックを使用すると、未処理のエラーによってスクリプトのフローが中断されるのを防ぐことができます。

PowerShell では、ブロック


試す

例外を生成する可能性のあるコード部分をラップするために使用されます。ブロック内で例外が発生した場合


試す

、彼女はブロックに捕まっています


レスリング

副。基本的な構文の例を次に示します。



試す {
    # 例外を生成する可能性のあるコード
    Get-Item "C:NonExistentFile.txt"
}
キャッチ {
    # 例外を処理するコード
    Write-Host "指定されたファイルが見つかりませんでした。"
}


上記のコードは、存在しないファイルにアクセスしようとします。注文時


アイテムの取得

失敗した場合、例外はブロックによってキャッチされます


レスリング

とメッセージがユーザーに表示されます。

によるエラー処理 試して捕まえてください PowerShell では、さまざまな種類の例外を指定するか、ブロックを追加することで、より高度な処理を行うことができます。


ついに

これは例外が発生したかどうかに関係なく常に実行されます。

堅牢なエラー処理のための重要な要素は次のとおりです。

  • 例外タイプの指定: ブロック内で指定することで、さまざまなタイプの例外を管理できます。 レスリング

    どの特定のタイプをキャッチする必要があるか。

  • ブロックの使用 ついに

    : このブロックはブロックの後に実行されます

    試す

    そしてブロック

    レスリング

    例外がスローされたかどうかに関係なく、リソースをクリーンアップしたり、最終アクションを実行したりできます。



試す {
    # 特定の例外を生成する可能性のあるコード
}
    書き込みホスト「実行時エラーが検出されました。」
}
キャッチ {
    Write-Host「不明なエラーが検出されました。」
}
ついに {
    Write-Host「ブロックがついに実行されました。」
}


この例では、ブロックは


レスリング

を特別に処理するために洗練されています。


ランタイム例外

。ブロック


ついに

ブロックの成功または失敗に関係なく実行されます


試す

試す レスリング
テストするコードを囲むために使用されます try ブロックで発生したエラーを処理するために使用されます
コードのブロックを実行し、潜在的なエラーをキャプチャできます。 コードを実行してエラーを処理し、スクリプトの中断を回避します。
エレガントかつ構造化された方法でエラー処理を容易にします。 エラーメッセージの表示やスクリプトの再起動など、エラー発生時に実行するアクションを定義できます。

PowerShell での try と catch の使用例

Closeup of a PowerShell error message output after executing a script.

パワーシェル、 ブロック 試して捕まえてください エラー処理に使用される構造体です。これにより、スクリプトが例外を適切に処理し、スクリプトのクラッシュを防ぎながら有用なエラー情報を提供できるようになります。

ブロック 試す 例外を引き起こす可能性のあるコードが含まれています。例外が発生した場合、ブロックによってキャッチされます。 レスリング ここで適切な応答を設定できます。

例えば ​​:


試す {
    # 例外を生成する可能性のあるコード
    Get-Content -Path "存在しないファイル.txt"
} キャッチ {
    Write-Host "エラー: 指定されたファイルが見つかりませんでした。"
}

この例では、ファイル「non-existent_file.txt」が存在しない場合、「エラー: 指定されたファイルが見つかりませんでした。」というメッセージが表示されます。と表示されます。

複数のブロックを使用することも可能 レスリング さまざまな例外を処理するには:


試す {
    # いくつかの種類の例外を生成する可能性のあるコード
    Write-Host "フォーマット エラー: 整数に変換できません。"
} キャッチ {
    Write-Host "エラー: 例外が発生しました。"
}

この例では、形式が正しくないために変換が失敗した場合、最初のブロックは レスリング 実行します。その他の例外の場合、2 番目のブロック レスリング エラーを処理します。

キーワードを使用することも可能です ついに 例外があるかどうかに関係なく、コードを実行するには:


試す {
    # 例外を生成する可能性のあるコード
    Get-Content -Path "存在しないファイル.txt"
} キャッチ {
    Write-Host "エラー: 指定されたファイルが見つかりませんでした。"
} ついに {
    Write-Host "最終ブロック: リソースのクリーンアップ。"
}

ブロック ついに は引き続き実行されるため、クリーンアップやリソース解放タスクなどを実行できます。

要約すると、エラー処理は 試して捕まえてください PowerShell では、スクリプトをより堅牢にし、実行フローを制御しながらより正確なエラー情報を提供するのに役立ちます。

ユーザー入力の検証

試して捕まえてください PowerShell で管理できるようになります 例外 また、エラーによってスクリプト内で予期しないシャットダウンが引き起こされないようにします。この方法は次の場合に非常に重要です デバッグ コードを作成し、エラーをエレガントに処理することでスムーズな実行を保証します。

ブロック 試す 潜在的なエラーを監視するコードが含まれています。もし 例外 発生すると、制御はすぐにブロックに渡されます レスリング エラーを処理できる場所。 PowerShell はブロックも提供します ついに 例外の有無にかかわらず、コードを実行するオプション。

簡単な例を次に示します。



試す {
    # 問題がある可能性のあるコード
    $結果 = 1 / 0
} キャッチ {
    書き込みホスト "エラーが発生しました: $_"
} ついに {
    Write-Host "最後にブロックが実行されます。"
}


このコードは 1 を 0 で除算しようとします。これにより、 例外。ブロック レスリング はこのエラーをキャプチャしてメッセージを表示しますが、ブロックは ついに 常に実行します。

の一環として、 ユーザー入力の検証、 の用法 試して捕まえてください とても便利になります。たとえば、ユーザー入力が整数であることを確認するには、次のようにします。



$input = 読み取りホスト "数字を入力してください"
試す {
[int]    $num = $input[int]
    Write-Host "有効な番号を入力しました: $num"
} キャッチ {
    Write-Host "エラー: 入力は整数ではありません。"
}


このスクリプトは、ユーザーに数字の入力を求めます。ユーザーが整数に変換できない値を入力した場合、 例外 が解除され、ブロックが解除されます レスリング エラーメッセージが表示されます。

試して捕まえてください PowerShell は、特にユーザー入力やその他のエラーに敏感な操作の処理に関して、エラーを処理し、スクリプトのスムーズな実行を確保するための効果的な方法です。

特定の例外の処理

PowerShell では、ブロック 試す そして レスリング 例外、つまりスクリプトの実行中に発生する可能性のあるエラーを管理できます。これにより、スクリプトの継続性が確保され、問題が発生した場合には特定のコードが実行されます。ブロック


試す

ブロックには通常実行されるコードが含まれていますが、


レスリング

例外が発生した場合に発生します。

簡単な例を次に示します。


試す {
    # エラーを引き起こす可能性のあるコード
    $結果 = 1 / 0
} キャッチ {
    # エラー時に実行するコード
    書き込みホスト "エラーが発生しました: $_"
}

この例では、ゼロで除算すると例外がスローされ、ブロックで指定されたメッセージがスローされます。


レスリング

が掲載されています。

例外の管理も可能 特定の。たとえば、ファイル アクセス エラーを他の種類のエラーとは異なる方法で処理したい場合は、複数のブロックを使用できます。


レスリング

:


試す {
    # エラーを引き起こす可能性のあるコード
    Get-Content "C:存在しないファイル.txt"
    # ファイルが見つからない場合に実行するコード
    Write-Host "ファイルが見つかりませんでした。"
} キャッチ {
    # 他のエラーに対して実行するコード
    Write-Host "別のエラーが発生しました: $_"
}

この例では、最初の句は


レスリング

具体的にはファイルが見つからない例外を処理し、2 番目の句は


レスリング

他のすべての潜在的なエラーを処理します。

ブロック ついに ブロックの後に使用できます


試す

そして


レスリング

例外があるかどうかに関係なく、実行する必要があるコードを実行します。例えば ​​:


試す {
    # エラーを引き起こす可能性のあるコード
    $結果 = 1 / 0
} キャッチ {
    # エラー時に実行するコード
    書き込みホスト "エラーが発生しました: $_"
} ついに {
    # すべての場合に実行するコード
    Write-Host "finally ブロックを実行しています。"
}

ブロック


ついに

「最終的にブロックを実行しています」というメッセージが表示されるようにします。ブロック内で例外が発生しても表示されます


試す

  • ルネサンスとは何であったのか (塩野七生ルネサンス著作集)
    Binding : Gebundene Ausgabe, medium : Gebundene Ausgabe, ISBN : 4106465019
  • ラオスにいったい何があるというんですか? 紀行文集 (文春文庫 む 5-15)
    Binding : Taschenbuch, medium : Taschenbuch, ISBN : 416791056X
  • 結婚を考えはじめた女へ: 何が男の心を動かす“決め手”になるのか (王様文庫)
    Binding : paperback_bunko, Label : 結婚を考えはじめた女へ : 何が男の心を動かす“決め手”になるのか (王様文庫), medium : paperback_bunko, languages : japanese, ISBN : 4837967299

Hervé

Comments

Leave a comment

Your comment will be revised by the site if needed.