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ランキング
-
fopen64について
-
VBA テキストファイルを読み取...
-
HTMLのフォームで画像と文...
-
MATLABのm-fileについて
-
fgets で値が取得できない
-
画像ファイルをアップロードす...
-
Perl の「stringify」の意味に...
-
VBAで巨大なファイルの途中から...
-
Perl 時間同士の差
-
バッチファイルの作り方(CSV→...
-
ファイル出力をUTF8Nではなくて...
-
正規表現で"-" "0-9"以外を削除...
-
ファイル名を複数個配列で確保...
-
ADOによるCSVファイルからのデ...
-
自動更新
-
<br />と<p></p>の使い方
-
ExcelをCSV書き出す場合のシー...
-
画像をバイナリデータに変換す...
-
メールアドレス登録の重複をチ...
-
perlでcsvの出力について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
window.open でのファイル指定方法
-
csvファイルの横方向への改行に...
-
python renameについて
-
VBAコードを張り付け後のエクセ...
-
ファイルの存在の有無を確かめ...
-
行を指定して削除する方法PERL
-
ファイル全てを .xlsm に変更し...
-
VBA テキストファイルを読み取...
-
Firefox で file:// で始まる U...
-
fgets で値が取得できない
-
perl ファイルが開かない
-
MATLABのm-fileについて
-
Perl の「stringify」の意味に...
-
JSP URLに表示される拡張子 .jsp
-
PerlでのUseless use...
-
巨大なテキストの最終行を取得...
-
複数ファイルを1つにするシェ...
-
drtファイルはどうしたら開...
-
fopen64について
-
ヒアドキュメントの書き方
おすすめ情報