12#if __DCL_HAVE_ALLOC_DEBUG
13#undef __DCL_ALLOC_LEVEL
14#define __DCL_ALLOC_LEVEL __DCL_ALLOC_INTERNAL
20#if __DCL_HAVE_THIS_FILE__
33#if __DCL_HAVE_ALLOC_DEBUG
36 DCLDebugAllocSetCheckFlag(
this,
true);
51#if __DCL_HAVE_ALLOC_DEBUG
54 if (DCLDebugAllocGetPosition(p, filename,
85OutOfMemoryException::OutOfMemoryException()
112 DWORD dwLength = ::FormatMessageW(
113 FORMAT_MESSAGE_ALLOCATE_BUFFER |
114 FORMAT_MESSAGE_FROM_SYSTEM |
115 FORMAT_MESSAGE_IGNORE_INSERTS,
118 MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
125 for ( ; dwLength; dwLength--)
126 if (!(msg[dwLength - 1] == L
'\r' || msg[dwLength - 1] == L
'\n'))
129 sb.assign(msg, dwLength);
137 sb = L
"::FormatMessage Fail!";
145 CharBuffer* buf = CharBuffer::create(256);
146 if (_wcserror_s(buf->data(), buf->__allocLength, __errorNo))
149 buf->__dataLength = String::length(buf->data());
170 __message = L
"\"" + _name + L
"\"";
181 __message = L
"\"" + _name + L
"\"" +
__T(
" ") + _message;
198 __message = L
"invalid index key: " + _key;
204 __message = String::format(
205 L
"invalid index. valud: %d, valid range: %d <= valud <= %d",
222 __message = _message;
229 __message = _message;
230 __sourceOffset = _sourceOffset;
235 StringBuilder sb = __message;
236 if (__sourceOffset >= 0) {
250NumericConvertException::NumericConvertException(
251 const String& _number,
256 __error = InvalidNumberString;
261NumericConvertException::NumericConvertException(
263 const String& _number,
267 __DCL_ASSERT(_error == Overflow || _error == Underflow);
275 if (__error == InvalidNumberString) {
276 sb = L
"Invalid number string: \""
277 + ParseException::__message
285 if (ParseException::__sourceOffset >= 0) {
295 if (__error == Overflow)
296 sb = L
"Numerical result overflow \"";
298 sb = L
"Numerical result underflow \"";
299 sb += ParseException::__message + L
"\"";
321 __message = pszErrorMessage;
326 StringBuilder sb = __message;
329 sb += L
": See! Detail";
346 __filename = _filename;
351 __message = _message;
356 return format(__filename, __line, __expr,
357 __message.isEmpty() ?
NULL : __message.data()
368 StringBuilder sb = L
"Assertion Failed ! '";
DCLCAPI int __strerror(String &_r, int _errnum)
#define __countof(array, type)
#define WINAPI_ERROR_MASK
#define __DCL_ASSERT(expr)
#define IMPLEMENT_CLASSINFO(class_name, base_class_name)
static String format(const char_t *_filename, unsigned int _line, const char_t *_expr, const char_t *_message)
AssertError(const char_t *_filename, unsigned int _line, const char_t *_expr, const char_t *_message)
virtual String toString() const
virtual String toString() const
Exception(Exception *_cause=NULL)
String toStringAll() const
GenerialException(Exception *_cause)
virtual String toString() const
virtual String toString() const
IOException(const String &_name, Exception *_cause)
String toString(unsigned _base=10) const
String toString(unsigned _base=10) const
InvalidIndexException(const String &_key)
virtual String toString() const
ParseException(const String &_message)
virtual String toString() const
virtual String toString() const
SysError(Exception *_cause=NULL)
String toString(unsigned _base=10) const
String toString(unsigned _base=10) const
String toString(unsigned _base=10) const