c++: Catch runtime_error
Je suis en train d'apprendre le c++ à la maison et je suis en utilisant le rapidxml lib.
Je suis en utilisant les utilitaires fournis avec celui-ci pour ouvrir des fichiers:
rapidxml::file<char> myfile (&filechars[0]);
J'ai remarqué que si filechars
est fausse, l' rapidxml::file
jeter un runtime_error:
//Open stream
basic_ifstream<Ch> stream(filename, ios::binary);
if (!stream)
throw runtime_error(string("cannot open file ") + filename);
stream.unsetf(ios::skipws);
Je pense que j'ai besoin d'écrire quelque chose comme ça:
try
{
rapidxml::file<char> GpxFile (pcharfilename);
}
catch ???
{
???
}
J'ai fait quelques recherches sur google, mais je n'ai pas trouver ce dont j'ai besoin à la place de la ???
.
Quelqu'un pourrait-il m'aider?
Merci!
OriginalL'auteur Plouff | 2011-09-20
Vous devez vous connecter pour publier un commentaire.
Vous devez ajouter une exception de la déclaration suivante à la
catch
déclaration. Le type de levée est std::runtime_error.Si vous devez prendre plusieurs, des différents types d'exceptions, alors vous pouvez ajouter plus d'un
catch
déclaration:catch( const runtime_error& error ) { cout << error.what() << endl; }
.OriginalL'auteur Marlon
OriginalL'auteur Chad
Eh bien, cela dépend de ce que vous voulez faire quand il arrive. C'est le minimum:
Si vous souhaitez obtenir à l'exception réelle, alors vous devez déclarer une variable pour stocker à l'intérieur des parenthèses à la place des trois petits points.
OriginalL'auteur Mark Reed