|
|
| version 1.47.14.1, 2005/08/05 13:03:01 | version 1.51, 2013/07/16 15:06:40 |
|---|---|
| Line 1 | Line 1 |
| /** @file | /** @file |
| Parser: exception class. | Parser: exception class. |
| Copyright (c) 2001-2005 ArtLebedev Group (http://www.artlebedev.com) | Copyright (c) 2001-2012 Art. Lebedev Studio (http://www.artlebedev.com) |
| Author: Alexandr Petrosian <paf@design.ru> (http://paf.design.ru) | Author: Alexandr Petrosian <paf@design.ru> (http://paf.design.ru) |
| */ | */ |
| static const char * const IDENT_EXCEPTION_C="$Date$"; | |
| #include "pa_common.h" | #include "pa_common.h" |
| #include "pa_exception.h" | #include "pa_exception.h" |
| #include "pa_sapi.h" | #include "pa_sapi.h" |
| #include "pa_globals.h" | #include "pa_globals.h" |
| volatile const char * IDENT_PA_EXCEPTION_C="$Id$" IDENT_PA_EXCEPTION_H; | |
| // methods | // methods |
| Line 29 Exception& Exception::operator =(const E | Line 28 Exception& Exception::operator =(const E |
| } | } |
| Exception::Exception(const char* atype, | Exception::Exception(const char* atype, |
| const String* aproblem_source, | const String* aproblem_source, |
| const char* comment_fmt, ...) { | const char* comment_fmt, ...) { |
| ftype=atype; | ftype=atype; |
| fproblem_source=aproblem_source; | fproblem_source=aproblem_source; |
| Line 38 Exception::Exception(const char* atype, | Line 37 Exception::Exception(const char* atype, |
| fcomment=new(PointerFreeGC) char[MAX_STRING]; | fcomment=new(PointerFreeGC) char[MAX_STRING]; |
| va_list args; | va_list args; |
| va_start(args, comment_fmt); | va_start(args, comment_fmt); |
| vsnprintf(fcomment, MAX_STRING, comment_fmt, args); | vsnprintf((char *)fcomment, MAX_STRING, comment_fmt, args); |
| // _asm int 3; | |
| va_end(args); | va_end(args); |
| } else | } else |
| fcomment=0; | fcomment=0; |
| } | } |
| const String* Exception::problem_source() const { | const String* Exception::problem_source() const { |
| return fproblem_source && fproblem_source->length()?fproblem_source:0; | return fproblem_source && !fproblem_source->is_empty()?fproblem_source:0; |
| } | } |