UtilityException UtilityException::inherit( UTIL_EXCEPTION_CONSTRUCTOR_ARGS_LIST) throw() { Exception cause; Exception::NamedErrorCode modErrorCode; try { throw; } catch (Exception &e) { modErrorCode = e.getNamedErrorCode(); cause = e; } catch (std::bad_alloc&) { modErrorCode = UTIL_EXCEPTION_UTIL_NAMED_CODE(CODE_NO_MEMORY); } catch (...) { modErrorCode = UTIL_EXCEPTION_UTIL_NAMED_CODE(CODE_ILLEGAL_OPERATION); } return UtilityException( (namedErrorCode.isEmpty() ? modErrorCode : namedErrorCode), (message == NULL || strlen(message) == 0) ? UTIL_EXCEPTION_CREATE_MESSAGE_CHARS( cause.getField(Exception::FIELD_MESSAGE)) : message, fileNameLiteral, functionNameLiteral, lineNumber, causeInHandling, typeNameLiteral, stackTraceMode, literalFlags); }
void GSExceptionRegenerator::generate( util::Exception &dest, const char8_t *typeName) const throw() { util::Exception cause; try { cause.assign(base_, 1); throw cause; } catch (...) { dest = util::Exception(base_.getNamedErrorCode(), UTIL_EXCEPTION_CREATE_MESSAGE_CHARS(base_.getField( util::Exception::FIELD_MESSAGE)), fileNameLiteral_, functionNameLiteral_, base_.getLineNumber(), &cause, typeName, util::Exception::STACK_TRACE_NONE, base_.inheritLiteralFlags()); } }