J'ai un cheesesales.txt
Un fichier CSV contenant toutes mes ventes récentes de fromage. Je veux créer une classe CheeseSales
qui peuvent faire des choses comme celles-ci :
CheeseSales sales("cheesesales.txt"); //has no default constructor
cout << sales.totalSales() << endl;
sales.outputPieChart("piechart.pdf");
Le code ci-dessus suppose qu'aucune défaillance ne se produira. En réalité, des défaillances se produiront. Dans ce cas, deux types d'échecs peuvent se produire :
- Échec dans le Constructeur : Le fichier n'existe peut-être pas, n'a peut-être pas les autorisations de lecture, contient des données non valides/non analysables, etc.
- Échec dans le méthode habituelle : Le fichier peut déjà exister, il se peut qu'il n'y ait pas d'accès en écriture, trop peu de données de vente disponibles pour créer un graphique circulaire, etc.
Ma question est simple : comment concevriez-vous ce code pour gérer les échecs ?
Une idée : Renvoyer un bool
de la méthode habituelle indiquant un échec. Je ne sais pas comment gérer le constructeur.
Comment les codeurs C++ expérimentés font-ils ce genre de choses ?