为什么抛出的异常没有收到?

fanged 2003-12-27 05:25:48
练习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;
}
}
...全文
65 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
fanged 2003-12-28
  • 打赏
  • 举报
回复
哎。以前看到过这样的东西,但是当时没有注意,希望以后能记住!谢谢了。
Jinhao 2003-12-27
  • 打赏
  • 举报
回复
if(s=="help")//这里就不行!
s当然不等于"help"
字符串有这样比的吗??你比的是他们的地址
qiaojicheng 2003-12-27
  • 打赏
  • 举报
回复
s="help"?这是什么意思呀?

strcmp(s,"help") == 0

24,860

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧