- UID
- 2299
- 积分
- 465
- 精华
- 贡献
-
- 威望
-
- 活跃度
-
- D豆
-
- 在线时间
- 小时
- 注册时间
- 2002-1-31
- 最后登录
- 1970-1-1
|
发表于 2003-1-26 23:43:32
|
显示全部楼层
你是想让 CFile 抛出异常到指定的 CFileException 对象吧.
就按你的思路吧,
应当先在CFile::Open()时指定, 否则,你的 (Exception.m_cause != 15) 会永远为真。
这样改:
- CFile Textfile;
- [color=blue]CFileException Exception;[/color]
-
- //Textfile.Open(SelectedText, CFile::modeRead);
- [color=blue]Textfile.Open(SelectedText, CFile::modeRead, &Exception); // 指定Textfile的异常全都抛给Exception.[/color]
-
- Textfile.SeekToBegin(); // 这一句, 可要可不要
-
- //Textfile.Read(strBuff, word);
- //CFileException Exception; //提到前面去
-
- while (Exception.m_cause != CFileException::endOfFile)//判断CFile类是否到达文件尾
- {
- // Textfile.Seek(word, CFile::end); //word是个正数吧, 你这一句会立即产生endOfFile异常
- Textfile.Read(strBuff, word);
- acutPrintf("%s\n",strBuff);
- }
- Textfile.Close();
复制代码
其实,不用 CFileException 一样也可以判断CFile对象是否到达文件尾
- CFile Textfile;
- Textfile.Open(SelectedText, CFile::modeRead);
- while(1)
- {
- int nRead = Textfile.Read(strBuff, word);
- if (nRead > 0)
- acutPrintf("%s\n",strBuff);
- else
- break;
- }
- Textfile.Close();
-
复制代码
真要用CFileException, 应当用 try ... catch ... 来捕获异常。 |
|