.NET Tools
例外を思いのままに発生できる
株式会社ピーデー 川俣 晶 |
|
|
簡単なシミュレーション操作(環境フォールト)
ここでは次のような簡単なサンプル・プログラム(VB)を例にして、異常ケースを容易にシミュレーションできることを示してみよう。
|
|
サンプル・プログラム(VB) | |
10行のテキストを書き込んだテキスト・ファイルをCドライブに作成する。 |
これは、10行のテキストを書き込んだテキスト・ファイルをCドライブに作成するだけの、いたってシンプルなプログラムだ。しかし上述したように、一般的にCドライブはOSがインストールされているシステム・ドライブであるため、ダミー・ファイルで空き容量をゼロにしたりすると、さまざまなソフトの正常な動作を阻害する可能性がある。かといって、さまざまな目的に使われるCドライブだからこそ、空き容量がゼロになる可能性は決して低くはない。そのようなケースでプログラムがどのように振る舞うか、テストしたいこともあるだろう。そのような背景を踏まえたサンプル・プログラムである。
さて、ここではVS 2005とFault Simulatorを使って、最も手っ取り早くこのケースをシミュレーションする手順を見てみよう。
まずは、システム・レベルで特定の異常ケースをシミュレーションする環境フォールトを試してみよう。これはWindows OSの処理に直接割り込んで異常ケースを作り出すため、きめ細かい条件指定はできないが、その分だけ単純明快という特徴を持っている。
まず、VS 2005に追加される[表示]メニューの[DevPartner Fault Simulator]を選び、Fault Simulatorウィンドウを表示させる。
Fault Simulatorウィンドウを表示させたVisual Studio 2005 |
[表示]メニューの[DevPartner Fault Simulator]を実行するとFault Simulatorウィンドウが表示される。 |
ここで、Fault Simulatorウィンドウ上部に並んでいるボタンのうち、最も左側の[環境フォールトの追加]ボタンをクリックする。すると、追加する環境フォールトの内容を指定するダイアログが表示される。
追加する環境フォールトの内容を指定するダイアログ |
このダイアログはFault Simulatorウィンドウから[環境フォールトの追加]ボタンをクリックして開く。ステップ1〜5を上から順に設定していけばよい。 |
ここでは、5つのステップが上から順に並んでいるので、それを頼りに設定を行うことができる。まずステップ1は、カテゴリの選択である。選択できるカテゴリは、環境フォールトの一覧に示したとおりである。
ここでは、ハードディスクの空き容量が尽きたケースを試すので「ディスクI/O」を選ぶ。すると、ステップ2のリストが指定されたカテゴリの内容に入れ替わる。そこで、「ディスクに十分な空き容量がありません」を選ぶ。
この後ステップ3では、選択したフォールトの条件を指定する。ここでは、空きディスク容量がないことをシミュレーションするドライブを指定する。もちろん、Cドライブを示す「C」を指定している。ステップ4〜5はオプションなので、手を触れないまま[OK]ボタンを押してみよう。
環境フォールト設定後のFault Simulatorウィンドウ |
ここではCドライブに空き容量がないという状況をシミュレートする設定を行った。 |
すると、Fault Simulatorウィンドウのリストに、設定したフォールトが一覧表示される。項目左のチェック・ボックスで、有効/無効が簡単に切り替えられる。
さて、ここで[F5]キーを押して実行してもFault Simulatorは何もしてくれない。指定した条件が意味を持つのは、異常ケースのシミュレーションを行う場合のみだからである。
では、どうすれば異常ケースのシミュレーションを実行できるのだろうか。操作方法はいくつかあるが、最も簡単なのは、Fault Simulatorウィンドウにある[Fault Simulatorを開始]ボタンをクリックすることだ。これによって、異常ケースのシミュレーションが動作し始め、同時に対象となるプログラムもスタートする。
その結果、VS 2005は「ディスクに十分な空き領域がありません。」という例外を検出してプログラムの実行を停止させる。
シミュレーションの動作結果 |
Cドライブに空き容量がないという状況をシミュレートしているため、WriteLineメソッドで例外が発生する。 |
ちなみに、VS 2005がこの状態にあるとき、Cドライブにはたっぷりと空き容量が残っていた。以下に、補足として、その瞬間の空き容量を以下に示す。
Cドライブの空き容量の確認 |
Cドライブには8Gbytes以上の空き容量が残っている。 |
さて実行を終了すると、結果をまとめたタブが追加される。ここでは、どのような例外がどのように発生したかが記録されている。
環境フォールトのシミュレート結果 |
どのような例外がどのように発生したかが記録されている。 |
以上のように、実際には多くの空き容量を持つドライブに、あたかも空き容量が存在しないかのようなシミュレーションがとても簡単にできたことがお分かりいただけたと思う。だがこの程度のことは、Fault Simulatorにとっては、まだまだ序の口である。
INDEX | ||
[.NET Tools] | ||
例外を思いのままに発生できる「DevPartner Fault Simulator」レビュー | ||
1.異常ケース再現シミュレータ「DevPartner Fault Simulator」 | ||
2.簡単なシミュレーション操作(環境フォールト) | ||
3..NET Frameworkフォールトを試す | ||
4.スタンドアロン実行とコマンドラインからのテスト | ||
「.NET Tools」 |
- 第2回 簡潔なコーディングのために (2017/7/26)
ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている - 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう - 第1回 明瞭なコーディングのために (2017/7/19)
C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える - Presentation Translator (2017/7/18)
Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|