Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of mappen te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen om mappen te wijzigen.
Opmerking
De Microsoft Foundation Classes-bibliotheek (MFC) wordt nog steeds ondersteund. We voegen echter geen functies meer toe of werken de documentatie bij.
Vertegenwoordigt een uitzonderingsvoorwaarde met betrekking tot bestanden.
Syntaxis
class CFileException : public CException
Leden
Openbare constructors
| Naam | Description |
|---|---|
CFileException::CFileException |
Maakt een CFileException object. |
Openbare methoden
| Naam | Description |
|---|---|
CFileException::ErrnoToException |
Retourneert code die overeenkomt met een runtimefoutnummer. |
CFileException::GetErrorMessage |
Hiermee wordt het bericht opgehaald met een beschrijving van een uitzondering. |
CFileException::OsErrorToException |
Retourneert een oorzaakcode die overeenkomt met een foutcode van het besturingssysteem. |
CFileException::ThrowErrno |
Genereert een bestandsonderzondering op basis van een runtime-foutnummer. |
CFileException::ThrowOsError |
Genereert een bestandsonderzondering op basis van een foutnummer van het besturingssysteem. |
Leden van openbare gegevens
| Naam | Description |
|---|---|
CFileException::m_cause |
Bevat draagbare code die overeenkomt met de oorzaak van de uitzondering. |
CFileException::m_lOsError |
Bevat het bijbehorende foutnummer van het besturingssysteem. |
CFileException::m_strFileName |
Bevat de naam van het bestand voor deze uitzondering. |
Opmerkingen
De CFileException klasse bevat leden van openbare gegevens die de code voor draagbare oorzaak en het specifieke foutnummer van het besturingssysteem bevatten. De klasse biedt ook statische lidfuncties voor het genereren van bestandsonderzondering en voor het retourneren van oorzaakcodes voor zowel fouten van het besturingssysteem als C-runtimefouten.
CFileException objecten worden samengesteld en gegenereerd in CFile lidfuncties en in lidfuncties van afgeleide klassen. U kunt deze objecten openen binnen het bereik van een CATCH expressie. Gebruik voor portabiliteit alleen de oorzaakcode om de reden voor een uitzondering op te halen. Zie het artikel Exception Handling (MFC) voor meer informatie over uitzonderingen.
Overnamehiërarchie
CFileException
Requirements
Rubriek:afx.h
CFileException::CFileException
Hiermee wordt een CFileException object gemaakt waarin de oorzaakcode en de code van het besturingssysteem in het object worden opgeslagen.
CFileException(
int cause = CFileException::none,
LONG lOsError = -1,
LPCTSTR lpszArchiveName = NULL);
Parameterwaarden
cause
Een geïnventariseerd typevariabele die de reden voor de uitzondering aangeeft. Zie CFileException::m_cause voor een lijst met de mogelijke waarden.
lOsError
Een besturingssysteemspecifieke reden voor de uitzondering, indien beschikbaar. De lOsError parameter biedt meer informatie dan cause wel.
lpszArchiveName
Verwijst naar een tekenreeks met de naam van het CFile object die de uitzondering veroorzaakt.
Opmerkingen
Gebruik deze constructor niet rechtstreeks, maar roep de globale functie AfxThrowFileExceptionaan.
Opmerking
De variabele lOsError is alleen van CFile toepassing op en CStdioFile objecten. Deze foutcode wordt niet verwerkt door de CMemFile klasse.
CFileException::ErrnoToException
Converteert een bepaalde runtimebibliotheekfoutwaarde naar een CFileException opgesomde foutwaarde.
static int PASCAL ErrnoToException(int nErrno);
Parameterwaarden
nErrno
Een geheel getalfoutcode zoals gedefinieerd in het runtime-include-bestand ERRNO.H.
Retourwaarde
Opgesomde waarde die overeenkomt met een bepaalde runtimebibliotheekfoutwaarde.
Opmerkingen
Zie CFileException::m_cause voor een lijst met de mogelijke opgesomde waarden.
Example
ASSERT(CFileException::ErrnoToException(EACCES) ==
CFileException::accessDenied);
CFileException::GetErrorMessage
Hiermee haalt u tekst op die een uitzondering beschrijft.
virtual BOOL GetErrorMessage(
LPTSTR lpszError,
UINT nMaxError,
PUINT pnHelpContext = NULL) const;
Parameterwaarden
lpszError
[in, uit] Aanwijzer naar een buffer die een foutbericht ontvangt.
nMaxError
[in] Het maximum aantal tekens dat de opgegeven buffer kan bevatten. Dit omvat het afsluitteken NULL .
pnHelpContext
[in, uit] Wijs een niet-ondertekend geheel getal aan dat de help-context-id ontvangt. Als NULLer geen id wordt geretourneerd.
Retourwaarde
TRUE als de methode is geslaagd; anders FALSE.
Opmerkingen
Als de opgegeven buffer te klein is, wordt het foutbericht afgekapt.
Example
In het volgende voorbeeld wordt CFileException::GetErrorMessagegebruikt.
CFile fileInput;
CFileException ex;
// try to open a file for reading.
// The file will certainly not
// exist because there are too many explicit
// directories in the name.
// if the call to Open() fails, ex will be
// initialized with exception
// information. the call to ex.GetErrorMessage()
// will retrieve an appropriate message describing
// the error, and we'll add our own text
// to make sure the user is perfectly sure what
// went wrong.
if (!fileInput.Open(_T("\\Too\\Many\\Bad\\Dirs.DAT"), CFile::modeRead, &ex))
{
TCHAR szCause[255];
CString strFormatted;
ex.GetErrorMessage(szCause, 255);
// (in real life, it's probably more
// appropriate to read this from
// a string resource so it would be easy to
// localize)
strFormatted = _T("The data file could not be opened because of this error: ");
strFormatted += szCause;
AfxMessageBox(strFormatted);
}
else
{
// the file was opened, so do whatever work
// with fileInput
// we were planning...
fileInput.Close();
}
CFileException::m_cause
Bevat waarden die zijn gedefinieerd door een CFileException geïnventariseerd type.
int m_cause;
Opmerkingen
Dit gegevenslid is een openbare variabele van het type int. De enumerators en hun betekenissen zijn als volgt:
| Fout | Waarde en betekenis |
|---|---|
CFileException::none |
0: Er is geen fout opgetreden. |
CFileException::genericException |
1: Er is een niet-opgegeven fout opgetreden. |
CFileException::fileNotFound |
2: Het bestand kan niet worden gevonden. |
CFileException::badPath |
3: Alle of een deel van het pad is ongeldig. |
CFileException::tooManyOpenFiles |
4: Het toegestane aantal geopende bestanden is overschreden. |
CFileException::accessDenied |
5: Het bestand kan niet worden geopend. |
CFileException::invalidFile |
6: Er is geprobeerd een ongeldige bestandsingang te gebruiken. |
CFileException::removeCurrentDir |
7: De huidige werkmap kan niet worden verwijderd. |
CFileException::directoryFull |
8: Er zijn geen mapvermeldingen meer. |
CFileException::badSeek |
9: Er is een fout opgetreden bij het instellen van de bestandsaanwijzer. |
CFileException::hardIO |
10: Er is een hardwarefout opgetreden. |
CFileException::sharingViolation |
11: SHARE.EXE niet geladen of een gedeelde regio is vergrendeld. |
CFileException::lockViolation |
12: Er is geprobeerd een regio te vergrendelen die al is vergrendeld. |
CFileException::diskFull |
13: De schijf is vol. |
CFileException::endOfFile |
14: Het einde van het bestand is bereikt. |
Opmerking
Deze CFileException oorzaak enumerators verschillen van de CArchiveException oorzaak enumerators.
Opmerking
CArchiveException::generic is verouderd. Gebruik in plaats daarvan genericException. Als generic wordt gebruikt in een toepassing en is gebouwd met /clr, zijn de resulterende syntaxisfouten niet gemakkelijk te ontcijferen.
Example
try
{
CFile f(_T("M_Cause_File.dat"), CFile::modeWrite);
}
catch(CFileException* e)
{
if( e->m_cause == CFileException::fileNotFound)
TRACE(_T("ERROR: File not found\n"));
e->Delete();
}
CFileException::m_lOsError
Bevat de foutcode van het besturingssysteem voor deze uitzondering.
LONG m_lOsError;
Opmerkingen
Raadpleeg de technische handleiding van uw besturingssysteem voor een lijst met foutcodes. Dit gegevenslid is een openbare variabele van het type LONG.
CFileException::m_strFileName
Bevat de naam van het bestand voor deze uitzonderingsvoorwaarde.
CString m_strFileName;
CFileException::OsErrorToException
Retourneert een enumerator die overeenkomt met een bepaalde lOsError waarde. Als de foutcode onbekend is, retourneert CFileException::genericde functie .
static int PASCAL OsErrorToException(LONG lOsError);
Parameterwaarden
lOsError
Een specifieke foutcode van het besturingssysteem.
Retourwaarde
Opgesomde waarde die overeenkomt met een bepaalde foutwaarde van het besturingssysteem.
Example
ASSERT(CFileException::OsErrorToException(ERROR_ACCESS_DENIED) ==
CFileException::accessDenied);
CFileException::ThrowErrno
Hiermee wordt een CFileException object gemaakt dat overeenkomt met een bepaalde nErrno waarde, waarna de uitzondering wordt gegenereerd.
static void PASCAL ThrowErrno(int nErrno, LPCTSTR lpszFileName = NULL);
Parameterwaarden
nErrno
Een geheel getalfoutcode zoals gedefinieerd in het runtime-include-bestand ERRNO.H.
lpszFileName
Een aanwijzer naar de tekenreeks met de naam van het bestand dat de uitzondering heeft veroorzaakt, indien beschikbaar.
Example
CFileException::ThrowErrno(EACCES); // "access denied"
CFileException::ThrowOsError
Hiermee wordt een CFileException corresponderende waarde gegenereerd die overeenkomt met een bepaalde lOsError waarde. Als de foutcode onbekend is, genereert de functie een uitzondering die is gecodeerd als CFileException::generic.
static void PASCAL ThrowOsError(LONG lOsError, LPCTSTR lpszFileName = NULL);
Parameterwaarden
lOsError
Een specifieke foutcode van het besturingssysteem.
lpszFileName
Een aanwijzer naar de tekenreeks met de naam van het bestand dat de uitzondering heeft veroorzaakt, indien beschikbaar.
Example
CFileException::ThrowOsError(ERROR_ACCESS_DENIED); // "access denied"