为什么抛出的异常没有收到?
练习C++的异常处理的时候写了一个程序,在命令行模式下的。作用是阅读文本。程序名是cpp.exe。本想在执行的时候如果后面的参数是help。就显示帮助,但是为什么不行呢?还请高手指教。
#include <fstream>
#include <iostream>
using namespace std;
void main(int argc,char ** argv)
{
try
{
char line[256];
if(argv[1]==NULL)
{
throw "NULL";
}
ifstream s(argv[1]);
if(s.fail())
throw argv[1];//抛出异常
while(!s.eof())
{
s.getline(line,sizeof(line));
cout<<line<<endl;
}
s.close();
}
catch(const char * s)
{
if(s=="help")//这里就不行!
{
cout<<"cpp2 [driver:][path]filename"<<endl;
exit(1);
}
else
if(s=="NULL")//这个地方能行。
{
cout<<"cpp2 [driver:][path]filename"<<endl;
exit(1);
}
cout<<"Error!"<<endl;
cout<<"The detail:"<<s<<endl;
}
}