64,654
社区成员
发帖
与我相关
我的任务
分享
class A{
void fun(const char* filename){
ifstream m;
m.open(filename);
if(!m.is_open()){
throw "error";
}
...
m.close();
}
}
int main(){
A a;
try{
a.fun("C:\\1.txt");
}catch(const char*error){
cout<<error<<endl;
return 1;
}
return 0;
}
请看看问题出在哪里?[/quote]
从你代码看如果抛出异常是应该会接收到的,你检查是否满足了if条件,也可能你程序崩溃是其他地方代码造成的,并不是这里抛出没接收到导致的
class A{
void fun(const char* filename){
ifstream m;
m.open(filename);
if(!m.is_open()){
throw "error";
}
...
m.close();
}
}
int main(){
A a;
try{
a.fun("C:\\1.txt");
}catch(const char*error){
cout<<error<<endl;
return 1;
}
return 0;
}
请看看问题出在哪里?
class A{
void fun(const char* filename){
ifstream m;
m.open(filename);
if(!m.is_open()){
throw "error";
}
...
m.close();
}
}
int main(){
A a;
try{
a.fun("C:\\1.txt");
}catch(const char*error){
cout<<error<<endl;
return 1;
}
return 0;
}
请看看问题出在哪里?
class A{
void fun(const char* filename){
ifstream m;
m.open(filename);
if(!m.is_open()){
throw "error";
}
...
m.close();
}
}
int main(){
A a;
try{
a.fun("C:\\1.txt");
}catch(const char*error){
cout<<error<<endl;
return 1;
}
return 0;
}
请看看问题出在哪里?[/quote]
从你代码看如果抛出异常是应该会接收到的,你检查是否满足了if条件,也可能你程序崩溃是其他地方代码造成的,并不是这里抛出没接收到导致的[/quote]
满足条件的,我调试的时候进入if{}在throw那一句崩溃了,vs2013停止并重启。
#include <iostream>
#include <fstream>
using namespace std;
class A
{
public:
void fun(const char* filename)
{
ifstream m;
m.open(filename);
if (!m.is_open())
{
throw "error";
}
else
{
m.close();
}
}
};
int main()
{
A a;
try
{
a.fun("C:\\1.txt");
}
catch (const char*error)
{
cout << error << endl;
return 1;
}
return 0;
}
class A{
void fun(const char* filename){
ifstream m;
m.open(filename);
if(!m.is_open()){
throw "error";
}
...
m.close();
}
}
int main(){
A a;
try{
a.fun("C:\\1.txt");
}catch(const char*error){
cout<<error<<endl;
return 1;
}
return 0;
}
请看看问题出在哪里?[/quote]
从你代码看如果抛出异常是应该会接收到的,你检查是否满足了if条件,也可能你程序崩溃是其他地方代码造成的,并不是这里抛出没接收到导致的[/quote]
满足条件的,我调试的时候进入if{}在throw那一句崩溃了,vs2013停止并重启。[/quote]throw (const char*)“error”试下