|
|
1.1 ! root 1: // This is a part of the Microsoft Foundation Classes C++ library. ! 2: // Copyright (C) 1992 Microsoft Corporation ! 3: // All rights reserved. ! 4: // ! 5: // This source code is only intended as a supplement to the ! 6: // Microsoft Foundation Classes Reference and Microsoft ! 7: // QuickHelp documentation provided with the library. ! 8: // See these sources for detailed information regarding the ! 9: // Microsoft Foundation Classes product. ! 10: ! 11: #include "afx.h" ! 12: #pragma hdrstop ! 13: ! 14: #ifdef AFX_AUX_SEG ! 15: #pragma code_seg(AFX_AUX_SEG) ! 16: #endif ! 17: ! 18: #ifdef _DEBUG ! 19: #undef THIS_FILE ! 20: static char BASED_CODE THIS_FILE[] = __FILE__; ! 21: #endif ! 22: ! 23: #ifdef _DEBUG ! 24: ! 25: // character strings to use for dumping CArchiveException ! 26: static char BASED_CODE szNone[] = "none"; ! 27: static char BASED_CODE szGeneric[] = "generic"; ! 28: static char BASED_CODE szReadOnly[] = "readOnly"; ! 29: static char BASED_CODE szEndOfFile[] = "endOfFile"; ! 30: static char BASED_CODE szWriteOnly[] = "writeOnly"; ! 31: static char BASED_CODE szBadIndex[] = "badIndex"; ! 32: static char BASED_CODE szBadClass[] = "badClass"; ! 33: static char BASED_CODE szBadSchema[] = "badSchema"; ! 34: ! 35: static char FAR* BASED_CODE rgszCArchiveExceptionCause[] = ! 36: { ! 37: szNone, ! 38: szGeneric, ! 39: szReadOnly, ! 40: szEndOfFile, ! 41: szWriteOnly, ! 42: szBadIndex, ! 43: szBadClass, ! 44: szBadSchema, ! 45: }; ! 46: ! 47: static char BASED_CODE szUnknown[] = "unknown"; ! 48: #endif ! 49: ! 50: ///////////////////////////////////////////////////////////////////////////// ! 51: // CArchiveException ! 52: ! 53: IMPLEMENT_DYNAMIC(CArchiveException, CException) ! 54: #define new DEBUG_NEW ! 55: ! 56: #ifdef _DEBUG ! 57: void ! 58: CArchiveException::Dump(CDumpContext& dc) const ! 59: { ! 60: CObject::Dump(dc); ! 61: dc << " m_cause = "; ! 62: if (m_cause >= 0 && ! 63: m_cause < sizeof(rgszCArchiveExceptionCause) / sizeof(char FAR*)) ! 64: { ! 65: dc << rgszCArchiveExceptionCause[m_cause]; ! 66: } ! 67: else ! 68: { ! 69: dc << szUnknown; ! 70: } ! 71: } ! 72: #endif //_DEBUG ! 73: ! 74: void PASCAL AfxThrowArchiveException(int cause) ! 75: { ! 76: #ifdef _DEBUG ! 77: TRACE("CArchive exception: "); ! 78: if (cause >= 0 && ! 79: cause < sizeof(rgszCArchiveExceptionCause) / sizeof(char FAR*)) ! 80: { ! 81: afxDump << (char FAR*)rgszCArchiveExceptionCause[cause]; ! 82: } ! 83: else ! 84: { ! 85: afxDump << (char FAR*)szUnknown; ! 86: } ! 87: afxDump << "\n"; ! 88: #endif //_DEBUG ! 89: ! 90: THROW(new CArchiveException(cause)); ! 91: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.