2014-11-13 01:04:59 +02:00
|
|
|
/***************************************************************************
|
|
|
|
* errorinterface.h
|
|
|
|
* This file is part of the KDE project
|
|
|
|
* copyright (C)2004-2006 by Sebastian Sauer (mail@dipe.org)
|
|
|
|
*
|
|
|
|
* This program is free software; you can redistribute it and/or
|
|
|
|
* modify it under the terms of the GNU Library General Public
|
|
|
|
* License as published by the Free Software Foundation; either
|
|
|
|
* version 2 of the License, or (at your option) any later version.
|
|
|
|
* This program is distributed in the hope that it will be useful,
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
|
|
* Library General Public License for more details.
|
|
|
|
* You should have received a copy of the GNU Library General Public License
|
|
|
|
* along with this program; see the file COPYING. If not, write to
|
|
|
|
* the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
|
|
|
* Boston, MA 02110-1301, USA.
|
|
|
|
***************************************************************************/
|
|
|
|
|
|
|
|
#ifndef KROSS_ERRORINTERFACE_H
|
|
|
|
#define KROSS_ERRORINTERFACE_H
|
|
|
|
|
|
|
|
#include "krossconfig.h"
|
|
|
|
|
|
|
|
#include <QtCore/QString>
|
|
|
|
|
|
|
|
namespace Kross {
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Interface for error-handling.
|
|
|
|
*/
|
2016-04-27 21:48:43 +00:00
|
|
|
class KROSS_EXPORT ErrorInterface
|
2014-11-13 01:04:59 +02:00
|
|
|
{
|
|
|
|
public:
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Constructor.
|
|
|
|
*
|
|
|
|
* \param error The error message.
|
|
|
|
* \param lineno The liner number in the scripting
|
|
|
|
* code where this exception got thrown.
|
|
|
|
*/
|
|
|
|
ErrorInterface() {}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* \return true if there was an error else false is returned.
|
|
|
|
*/
|
|
|
|
bool hadError() const { return ! m_error.isNull(); }
|
|
|
|
|
|
|
|
/**
|
|
|
|
* \return the trace message.
|
|
|
|
*/
|
|
|
|
const QString errorMessage() const { return m_error; }
|
|
|
|
|
|
|
|
/**
|
|
|
|
* \return the error message.
|
|
|
|
*/
|
|
|
|
const QString errorTrace() const { return m_trace; }
|
|
|
|
|
|
|
|
/**
|
|
|
|
* \return the line number in the scripting code where the
|
|
|
|
* exception got thrown or -1 if there was no line number defined.
|
|
|
|
*/
|
|
|
|
long errorLineNo() const { return m_lineno; }
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Set the error message.
|
|
|
|
*/
|
|
|
|
void setError(const QString& errormessage, const QString& tracemessage = QString(), long lineno = -1) {
|
|
|
|
m_error = errormessage;
|
|
|
|
m_trace = tracemessage;
|
|
|
|
m_lineno = lineno;
|
|
|
|
krosswarning( QString::fromLatin1("Error error=%1 lineno=%2 trace=\n%3").arg(m_error).arg(m_lineno).arg(m_trace) );
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Set the error message.
|
|
|
|
*/
|
|
|
|
void setError(ErrorInterface* error) {
|
|
|
|
m_error = error->errorMessage();
|
|
|
|
m_trace = error->errorTrace();
|
|
|
|
m_lineno = error->errorLineNo();
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Clear the error.
|
|
|
|
*/
|
|
|
|
void clearError() {
|
|
|
|
m_error.clear();
|
|
|
|
m_trace.clear();
|
|
|
|
m_lineno = -1;
|
|
|
|
}
|
|
|
|
|
|
|
|
private:
|
|
|
|
/// The error message.
|
|
|
|
QString m_error;
|
|
|
|
/// The trace message.
|
|
|
|
QString m_trace;
|
|
|
|
/// The line number where the exception got thrown
|
|
|
|
long m_lineno;
|
|
|
|
};
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|