C#でFileNotFoundException(ファイルが見つからない例外)をキャッチする方法
C#で存在しないファイルにアクセスしようとすると、FileNotFoundException(ファイルが見つからない例外)が発生します。この記事では、例外の発生例と、try-catchを使った適切なエラーハンドリングの方法を解説します。
FileNotFoundExceptionとは?
FileNotFoundExceptionは、指定されたパスにファイルが存在しない状態で読み込みやアクセスを試みた際にスローされる例外です。ファイル操作を行うプログラムでは、ユーザー入力や外部設定に依存するファイルパスが常に有効であるとは限らないため、必ず発生を想定した処理を書くことが重要です。
例外が発生するコード例
例として、存在しないファイル「new.txt」をStreamReaderで開いてみます。ファイルが存在しないため、ReadToEnd()を呼び出す前にFileNotFoundExceptionがスローされます。
using (StreamReader sReader = new StreamReader("new.txt")) {
sReader.ReadToEnd();
}
このコードを実行すると、「new.txt」がカレントディレクトリに存在しない場合、未処理の例外としてプログラムが異常終了してしまいます。
try-catchで例外をキャッチする
例外を安全に処理するには、ファイル操作のコードをtryブロックで囲み、catchブロックでFileNotFoundExceptionを受け取ります。
try {
using (StreamReader sReader = new StreamReader("new.txt")) {
sReader.ReadToEnd();
}
}
catch (FileNotFoundException e) {
Console.WriteLine("ファイルが見つかりません!");
Console.WriteLine(e);
}
catchブロック内では、ユーザー向けのメッセージ表示やログ出力など、アプリケーションが異常終了しないように適切な対処を行います。例外オブジェクト e を出力すれば、どのファイルが見つからなかったのかといった詳細情報も確認できます。
補足:事前にファイルの存在を確認する方法
例外処理と併せて、File.Exists()メソッドで事前にファイルの存在をチェックする方法も有効です。
string path = "new.txt";
if (File.Exists(path)) {
using (StreamReader sReader = new StreamReader(path)) {
sReader.ReadToEnd();
}
} else {
Console.WriteLine($"{path} は存在しません。");
}
ただし、File.Exists()によるチェックと実際のアクセスの間にファイルが削除される可能性もあるため、確実なのはtry-catchによる例外ハンドリングです。両者を組み合わせることで、より堅牢なファイル操作処理を実現できます。
-
404 Not Foundエラーの解決方法|原因と7つの対処法をわかりやすく解説
インターネットを利用していると、誰もが一度はエラーメッセージに遭遇したことがあるでしょう。よく見られるものには「502 Bad Gateway Error」「Aw Snap! Error」「ERR_SSL_PROTOCOL_ERROR」、そして「404 Not Found Error」などがあります。中でも404エラーは特によく目にするもので、Webページを読み込もうとした際に、目的のページではなくこのエラー画面が表示されてしまうという現象です。 ページ自体が存在しない、サイト運営者が削除・移動したといった理由で発生することもありますが、必ずしもそうとは限りません。実はユーザー側の環境に起因す
-
PCで「オペレーティングシステムが見つかりません」エラーが出たときの対処法まとめ
PCの電源を入れると、黒い画面に「Missing Operating System(オペレーティングシステムが見つかりません)」や「Boot device not found, please install an operating system on your hard disk(ブートデバイスが見つかりません)」といったエラーメッセージが表示され、Windowsが起動できなくなることがあります。突然のトラブルに焦ってしまいますが、落ち着いて対処すれば解決できるケースがほとんどです。この記事では、オペレーティングシステムが見つからないエラーの原因と、初心者でも実践できる5つの対処法を詳しく解