![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
VC++2005の.NETで言語はC++/CLIにてアプリを作成しています。
FileStream^ fs;
String^ file;
fs = gcnew FileStream( file, FileMode::Open );
にてファイルをオープンする処理を入れたのですが、
ファイルが存在しない、もしくは何らかのエラー等で、
ファイルが正常に開けない場合のエラー処理は、
どのように判断させればよいのでしょうか?
方法をご存知の方おられましたら、参考例などご教示お願い致します。
No.3ベストアンサー
- 回答日時:
捕まえる方法は前に回答されている方々のやり方でよいと思いますが、そのままだと実際にどんな原因で失敗しているのかわからないのが問題になりませんか?
私ならデバック時だけでもわかるように以下のような記述をします。
try
{
fs = gcnew FileStream(file, FileMode::Open);
}
catch(Exception^ e)
{
System::Diagnostics::Debug::WriteLine(e->Message);
return false;
}
以上、参考までに・・・
No.2
- 回答日時:
こんばんは。
以下URLのExceptionクラスから、様々な例外クラスへ派生していくのですから、
http://msdn.microsoft.com/ja-jp/library/system.e …
面倒であれば、以下の様にして、根っこを掴んでしまえば良いのでは。
try
{
fs = gcnew FileStream( file, FileMode::Open );
}
catch ( Exception^ )
{
//問答無用に捕まえる
return FALSE;
}
No.1
- 回答日時:
この回答への補足
御回答ありがとうございます。
try{
fs = gcnew FileStream( file, FileMode::Open );
}
catch ( ArgumentException^ ){
return FALSE;
}
catch ( FileNotFoundException^ ){
return FALSE;
}
・・・
のようなコードで期待動作をさせることが出来ました。
ただ、いくつかの例外を捕らえるには、
上記のようにcatch文を羅列させなければならないのでしょうか?
理想としては、正常にオープンできる以外の全ての例外の場合、
falseを返すようなコードをスマートに書きたいと思うのですが。。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C# で、あるフォルダー内にあるすべてのテキストファイルを別のフォルダーにコピーする。 4 2022/11/21 13:23
- Visual Basic(VBA) Excel-VBAでのファイルの開き方 4 2023/02/14 11:01
- Visual Basic(VBA) 【VBA】印刷マクロのループ処理が反映されません 3 2022/08/09 02:15
- 画像編集・動画編集・音楽編集 DVD Styler トラブル解決方法 6 2022/10/29 16:00
- Excel(エクセル) 【マクロ】エラーが発生⇒実行時エラー58既に同名のファイルが存在 5 2022/08/31 10:03
- Visual Basic(VBA) vbaのエラー対応(実行時エラー7:メモリが不足しています) 4 2023/04/24 00:20
- Visual Basic(VBA) エクセルVBA(実行時エラー438)の対処法を教えてもらえないでしょうか 3 2023/04/22 13:43
- Excel(エクセル) 【VBAファイル移動】2つのマクロを順に実行。1つ目のマクロが実行不可⇒2つ目が実行不可となる件 2 2022/07/29 12:17
- その他(プログラミング・Web制作) pythonのこのエラーがわかりません 3 2022/11/16 14:54
- Visual Basic(VBA) vbaの構文の修正相談(xmlファイルを順に開いてコピペ作業) 1 2023/04/22 01:18
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Firefox で file:// で始まる U...
-
python renameについて
-
巨大なテキストの最終行を取得...
-
drtファイルはどうしたら開...
-
複数ファイルを1つにするシェ...
-
JSP URLに表示される拡張子 .jsp
-
Perlでのパーミッション変更の仕方
-
重複ファイル名ある場合ファイ...
-
perlでMail::Mbox::MessagePars...
-
fgets で値が取得できない
-
VBAでCSVファイルの特定行を書...
-
Perlの変数に文字数制限(容量...
-
VBAでCSVファイルを途中行まで...
-
awkスクリプトでダブルクォーテ...
-
ExcelをCSV書き出す場合のシー...
-
DOSコマンドで、標準出力を出力...
-
ファイル出力の改行コードをLFに
-
C言語で特定の行を抽出する方法...
-
[Perl]ファイル出力のエンコー...
-
htaccessで特定のディレクトリ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
python renameについて
-
fgets で値が取得できない
-
window.open でのファイル指定方法
-
巨大なテキストの最終行を取得...
-
ファイル全てを .xlsm に変更し...
-
read() on unopened filehandle...
-
csvファイルの横方向への改行に...
-
VBAコードを張り付け後のエクセ...
-
JSP URLに表示される拡張子 .jsp
-
Firefox で file:// で始まる U...
-
drtファイルはどうしたら開...
-
重複ファイル名ある場合ファイ...
-
並び方、
-
VBA テキストファイルを読み取...
-
cgiでサーバーにファイルを追加...
-
HTMLのフォームで画像と文...
-
WindowsでPerlをする際,1行目の...
-
バイナリファイルの出力
-
Perlでのパーミッション変更の仕方
-
foreach内での変数の扱い?
おすすめ情報