关于MFC读取文件抛出异常处理

我在MFC中对文件进行读写,用的是CArchive来读写,而在使用它的时候发现不是很好判断是否已经读到文件末尾。所以在都到末尾之后再读一次,然后抛出异常,然后退出读取的循环,请问各位大神这个要用什么异常类实现呢?
比如

 while(1){
     ca>>sno;
        }

要怎么改呢?
try{
ca>>sno;
}
catch(?){
....
}
这样么?

try{
ca>>sno;
}
catch(...){
....
}

如果不知道什么问题,就什么类都抓。或者制定是CArchive的异常

try{
ca>>sno;
}
catch(CArchive){
....
}

try{
ca>>sno;
}
catch(CArchive){
....
}

try{
ca>>sno;
}
catch(CArchive){
....
}

读取文件,判断一下EOF来看是不是文件结尾了。

mfc好学吗,他们都说要淘汰了