ofstream la gestion des exceptions
Délibérément, je vais avoir cette méthode, qui écrit dans un fichier, j'ai donc essayé de gérer l'exception de la possibilité que je suis en train d'écrire dans un fichier fermé:
void printMe(ofstream& file)
{
try
{
file << "\t"+m_Type+"\t"+m_Id";"+"\n";
}
catch (std::exception &e)
{
cout << "exception !! " << endl ;
}
};
Mais apparemment std::exception n'est pas le approprié d'exception pour un fichier d'erreur parce que j'ai délibérément essayé d'utiliser cette méthode sur un fichier fermé, mais mon "exception !! "commentaire n'a pas été généré.
Alors quelle exception que j'ai écrit ??
OriginalL'auteur Joy | 2012-04-26
Vous devez vous connecter pour publier un commentaire.
Ruisseaux, ne pas jeter des exceptions par défaut, mais vous pouvez leur dire de lever des exceptions à l'appel de la fonction
file.exceptions(~goodbit)
.Au lieu de cela, la façon normale de détecter les erreurs est tout simplement pour vérifier le flux de l'etat:
La raison pour cela est qu'il y a de nombreuses situations où une défaillance de lire est un problème mineur, pas un de taille:
par rapport à:
Voir ça en live: http://ideone.com/uWgfwj
OriginalL'auteur Mooing Duck
Exception du type ios_base::l'échec, Cependant notez que vous devez régler l'indicateur approprié avec ios::les exceptions pour générer des exceptions ou bien seulement les indicateurs de l'état seront fixés pour l'indication de l'erreur, qui est le comportement par défaut pour les cours d'eau.
OriginalL'auteur Alok Save