お世話になっています。永瀬と申します。
下記のようなコードを作っています。ファイルを読み込んだとき、関数のエラーとE
OFを判別したいのですが、
わからないことがあります。
1、ReadStringでヘルプをみると下記のパラメータの場合は例外をスロー
しないように書いてあるが、
デバッグモードで実行するとEOF時にアウトプットに、
CArchive exception: endOfFile.
例外処理 (初回) は asgddasg.exe (KERNEL32.DLL) にあります: 0xE06D7363:
Microsoft C++ Exception。
と出る。
2、アウトプットでは上記のようにでているが、例外を下記のコードでなぜかデバッ
グモードでキャッチできない。
(catchの部分に入っていかない)
なぜでしょうか?
わかるかた、御教授お願いします。
#include <afxwin.h>
#include <stdio.h>
void main()
{
BOOL ret_b;
CFile cfile;
CString cstr("cstr");
cfile.Open("C:/aaa.txt",
CFile::modeRead | CFile::shareDenyRead|CFile::shareDenyWrite);
CArchive ar(&cfile,CArchive::load);
while(ret_b)
{
try
{
ret_b = ar.ReadString(cstr);
}
catch(CArchiveException* e)
{
if(e->m_cause == CArchiveException::endOfFile)
{
e->Delete();
break;
}
}
}
}
下記のようなコードを作っています。ファイルを読み込んだとき、関数のエラーとE
OFを判別したいのですが、
わからないことがあります。
1、ReadStringでヘルプをみると下記のパラメータの場合は例外をスロー
しないように書いてあるが、
デバッグモードで実行するとEOF時にアウトプットに、
CArchive exception: endOfFile.
例外処理 (初回) は asgddasg.exe (KERNEL32.DLL) にあります: 0xE06D7363:
Microsoft C++ Exception。
と出る。
2、アウトプットでは上記のようにでているが、例外を下記のコードでなぜかデバッ
グモードでキャッチできない。
(catchの部分に入っていかない)
なぜでしょうか?
わかるかた、御教授お願いします。
#include <afxwin.h>
#include <stdio.h>
void main()
{
BOOL ret_b;
CFile cfile;
CString cstr("cstr");
cfile.Open("C:/aaa.txt",
CFile::modeRead | CFile::shareDenyRead|CFile::shareDenyWrite);
CArchive ar(&cfile,CArchive::load);
while(ret_b)
{
try
{
ret_b = ar.ReadString(cstr);
}
catch(CArchiveException* e)
{
if(e->m_cause == CArchiveException::endOfFile)
{
e->Delete();
break;
}
}
}
}