ような非構造化例外処理を採用している。ブロックによって例外を捕捉する。検証してまとめてみた。掲載したサンプルコードはそのまま実行可能。ステートメントを使用して例外を明示的にスローすることができる。インスタンス、文字列である。メソッドによって文字列に変換されてスローされる。ステートメントの直後に例外の型を指定しておくと、その型の例外のみハンドルされる。ブロックが使用される。ブロックはスコープ内のどこに配置してもよく、同一スコープ内の全ての処理に作用する。変数にて、捕捉した例外にアクセスできる。プロパティから取得する。実際に発生した例外を取得できる。例外を捕捉して新しく別の例外としてスローする例を以下に示す。ブロックが同一スコープ内に存在するかどうか探される。ブロックに制御が移り、存在しない場合は上位スコープに例外がスローされる。ブロックが存在するかどうか探される。ブロックが存在しなかった場合、処理は中断され、例外がユーザーに通知される。ブロック内では、以下の2つのステートメントを使用できる。ステートメントスコープを抜ける。例外は上位に再スローする。ステートメント例外が発生したコードの次のコードに制御を移す。例外は握りつぶされる。ステートメントが実行されると例外が発生したコードの次のコードに制御が移動すると書いたが、厳密には、「同一スコープ内での次のコードに制御を移動」となる。以下のようなコードを例に挙げてみる。ブロックが含まれていない。出力した後例外が発生する。ブロックが存在しないので、例外は上位にスローされる。ブロックによって例外がハンドルされる。ステートメントが記述されているので、処理を続行することになる。遷移先は「同一スコープ内での次のコード」なので、1つ目のブロック内の処理は中断され、2つ目のブロックに制御が移る。2つ目のブロックでも同様の動作が繰り返される。結果として、以下の出力が得られる。変数の設定に従った動作が行われる。ブロック内で新たに例外が発生した場合は除く。捕捉した例外を元に新しく例外を生成してスローした場合等。ブロックに捕捉された例外に対しては動作しない。列挙体には以下の4つの列挙値が用意されている。)例外が発生したコードの次のコードに制御を移す。例外は握りつぶされる。ステートメントが実行された場合と同様の挙動。例外は上位に再スローする。ステートメントが実行された場合と同様の挙動。)例外が発生したコードの次のコードに制御を移す。例外はユーザーに通知される。再スローされるわけではない。)この値が既定の設定。)例外のメッセージを表示し、動作をユーザーに問い合わせる。ステートメントも実行されなかった場合の例を以下に示す。"SilentlyContinue";Sample4;このコードを実行すると、以下の出力が得られる。関数内のスクリプトブロックは一行目で例外をスローしている。ブロックに制御が移動する。変数に従った動作が行われる。いう文字列が出力される。出力されないことに注意する。変数に従った動作が行われる。ブロックは実行されていない。ブロックがどこにもない例外が発生した場合の例を以下に示す。"SilentlyContinue";Sample5;このコードを実行すると、以下の出力が得られる。関数内のスクリプトブロックは一行目で例外をスローしている。変数に従った動作が行われる。いう文字列が出力される。]適当に考えた、テクニックというほどでもないテクニックを3つほど。ブロックは配置されているスコープ内の全てに対して有効である。ように範囲を限定する特別な機能は備わっていない。ように範囲を限定したい場合は以下のようなテクニックが使える。使ってその場で実行させるということ。ブロックで例外を握りつぶすような機能が用意されていない。ステートメントを使えば例外を握りつぶしせるが、そのまま次のコードに復帰してしまう。ブロックで例外を握りつぶすような感じの処理を行いたい場合は以下のようなテクニックが使える。ステートメントによって例外を握りつぶす。ブロックが一つ上位に配置されているため、スクリプトブロックの中の処理は中断される。ブロックのように確実な後処理を行うための特別な機能が用意されていない。ように範囲を限定したい場合は以下のようなテクニックが使える。$True;つまり、確実な後処理をスクリプトブロックとして変数に格納しておき、正常終了時も、例外捕捉時もそれを呼び出すということ。可読性はあまりよくない。もどき」はあまり使うことないかな。近い形式で記述する方法を記事にしました。例外処理はこんなところかな。変数?なんのことやら。)例外処理には、まだ他にも書くべきことがありました。29ブログ内検索カウンターアクセスカウンターおすすめプロフィールAuthor:よこけん性別は男です。生年月日は1984年2月頃です。社会人は2004年4月頃からやってます。C#は2004年10月頃からやってます。このブログは2006年7月頃からやってます。アプリケーションリンクopus-i商用可・加工可で、綺麗な素材を提供していらっしゃいます。紹介していらっしゃいます。中心に扱っていらっしゃいます。コマンドレットをまとめたスナップインです。クラスライブラリを作ってみました。最近の記事ブログ移転しました。返事を返せない場合があります。