見たことがありま願のか? もしそうなら、あなたはそれがどれほどイライラするかを知っていて、あなたがプログラマーであれば、おそらくそれに正しいエラー処理メカニズムを入 そして、それはまさにこの作品がすべてに約あるものです エラー処理の一部であり、アプリケーションのコードを拾っていること不測の誤差が認められると、申請が終了します。, ほとんどのプログラミング言語と同様に、PowerShellはtry-catchと呼ばれるエラー処理メカニズムもサポートしていますが、その前にPowerShellでのエラー処理について少し学
なぜエラー処理が必要なのですか?
あなたのほとんどがすでに知っているかもしれないかなり基本的な質問です。 それでも、いくつかの重要な点を繰り返すためにそれに簡単に触れてみましょう。
エラー処理は、次の方法で役立ちます。
- アプリケーションがクラッシュするのを防ぎます。
- は、ユーザーが何か間違っていることを知り、サポートチームに連絡する必要があることを簡単に知ることができます。,
- は、エラーとその考えられる原因についての詳細を提供します。
- は、さらなる分析と問題の修正に役立ちます。
- のオプションをカスタマイズするには、エラーメッセージを送信してユーザー
- コードを簡単に保守できます。
- あなたのプログラムは、エラーとコードに応じて、エラーの後でも動作し続ける可能性があります。
エラー処理の利点について触れたので、PowerShellでどのように実装できるかを見てみましょう。,
PowerShellでのエラー処理
大まかに言えば、エラーには二つのタイプがあり、終了エラーと非終了エラーがあります。
終了エラーと非終了エラー
名前が示すように、終了エラーは重大であり、プログラムを突然終了させるものであり、非終了エラーはプログラムを実行できますが、間違った出力、または時には劇的な結果を与える可能性があります。 あなたが疑問に思っているなら、どの側面が変更される可能性があるかわからないので、終端エラーは終端エラーよりも潜在的に危険です。,
いくつかの可能な終了エラーは、メモリ不足と構文エラーであり、プログラミングロジックのエラーと予期しないエラーの大部分は、非終了カテゴリに分類さ
非終端エラーから終了エラーへの変換
プログラマとして、PowerShellに対して非終端エラーを終了エラーとして扱うように指示することができるので、その特定のエラーが発生した場合にプログラムが停止します。 既定では、try-catchブロックでは終了しないエラーを処理できないため、この変更はPowerShell try-catchブロックを使用してエラーを処理するのに役立ちます。,
非終了時のエラーを終了時のエラーに変換するには、ErrorActionというパラメーターを使用します。 毎cmdletを支えこのパラメータでのプログラムに何を行うべきであるときに出会い、エラーとなります。 ErrorActionには次のオプションが付属しています
- Stop:これはプログラムを停止し、終了エラーとして扱います。
- 続行:プログラムを続行でき、エラーが表示されます。
- SilentlyContinue:プログラムが実行され、エラーは表示されません。
- Ignore:エラーを無視して続行します。,
- Inquire:エラーを表示し、続行する必要があるかどうかを確認します。
- Suspend:これはWindows PowerShellワークフローで使用できます。 制限は、高度な機能を中断できないことです。
ErrorActionの構文は次のとおりです。
$variable = Get:content \user.txt:ErrorAction Stop
このコマンドは、非終端エラーを終了エラーに変更するため、処理できます。
try-catchブロックの構築
終了エラーが発生したり、終了していないエラーを終了エラーに変換したら、PowerShell try-catchブロックを使用して処理できます。,一般的な構文は次のとおりです。
この例では、ファイルのデータは$variableに格納され、エラーが発生した場合、コードはcatchブロックに到達してメッセージを表示します。 上記の例は基本的なもので、構文と使用方法のアイデアを与えるように設計されています。 ただし、現実の世界では、このPowerShell try-catchブロックを使用して、エラーに関する洞察を取得し、それに応じてアクションを実行します。,
PowerShell try-catchブロックの実用的なアプリケーション
catchブロック内のエラーレコードにアクセスできます。 実際、エラーメッセージは現在の変数$_に格納されています。 このエラーレコードでは、エラーの解析、警告の表示など、何でも行うことができます。 現在の変数の強力な属性は、プログラムが停止する原因となった予期しないイベントについてもっと知ることであるため、例外です。 また、例外自体には、ItemName、GetType、Messageなどの多くの属性が付属しています。,、
例:
try{$variable = Get:content \user.txt:ErrorAction Stop}catch{write:output $_Exception.Message}
基本が明確になったので、高度な部分に移動しましょう。
catchブロックを使用して、特定の例外をキャッチすることができます。 たとえば、ファイルが見つからない場合に特定のメッセージを表示し、他の例外の場合には他のメッセージを表示する場合、コードは次のようになります。
try-catchを使用するときに考慮すべき点
PowerShell try-catchブロックを使用する際には、次の点に注意してください。,
- tryブロックの終端中括弧とcatchコマンドの間にはコードがあってはなりません。 言い換えれば、”catch”という単語は、tryブロックの閉じ括弧の後の次の行にすぐにある必要があります
- このPowerShell try-catchブロックは、プログラムで発生する可能性があると予想されるエラーを処理するのに最も役立ちます。
- catchブロックは、その原点に関係なくtryブロック内でスローされた例外をキャッチします。
- PowerShell try-catchコマンドは、複数のifステートメントに代わる便利なコマンドです。,
- tryブロックの後に任意の数のcatchブロックを続けることができますが、それらは連続している必要があり、その間に他のコードはありません。
Finallyブロック
try-catchで使用できるfinallyブロックと呼ばれるものがあります。 これはオプションのものであり、常に使用する必要はありません。 このブロックは、エラーがあったかどうかに関係なく、その中に記載されたコードを実行します。 このブロックは、最後のcatchブロックの閉じ括弧の直後にある必要があります。,
例:
上記の例では、ファイルが見つかったかどうかにかかわらず、ファイルにアクセスしようとするたびにエントリがログファイルに追加されます。
ファイルが見つかったかどうかにかかわらず、
Try-catch:それを試してみて、クラッシュを回避
エラー処理は、アプリケーションがクラッシュするのを防ぎ、エラーの原因を分析するのに役立ちますので、どんなプログラムの重要な部分です。 PowerShell try-catchブロックは、終了エラーをキャプチャする強力な方法であるため、クラッシュを引き起こすことなく安全に処理できます。, それは問題の詳細な分析そして理解とまた助ける。 これらの理由から、PowerShellスクリプトでは必須です。
Leave a Reply