Quand est-ce que ofstream :: open échouera?

J'essaie try, catch, de jeter des déclarations en C++ pour la gestion des fichiers, et j'ai écrit un code factice de rattraper toutes les erreurs. Ma question est pour vérifier si j'ai eu ces droit, j'ai besoin d'une erreur. Maintenant, je peux facilement vérifier infile.fail() simplement pas la création d'un fichier de nom dans le répertoire. Mais comment vais-je être en mesure de vérifier la même chose pour outfile.fail() (outfile est ofstream où, comme infile est ifstream). Dans ce cas, la valeur pour outfile.fail() être vrai?

exemple de code [de commentaires sur unapersson réponse, simplifiée pour rendre la question plus claire -zack]:

#include <fstream>
using std::ofstream;

int main() 
{
    ofstream outfile;
    outfile.open("test.txt");
    if (outfile.fail()) 
        //do something...... 
    else 
        //do something else..... 
    return 0; 
}

source d'informationauteur Scranton