/*************************************************************************** * GException_app.cpp - Application exception handlers * * ----------------------------------------------------------------------- * * copyright (C) 2010-2012 by Juergen Knoedlseder * * ----------------------------------------------------------------------- * * * * This program is free software: you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation, either version 3 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 General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program. If not, see . * * * ***************************************************************************/ /** * @file GException_app.cpp * @brief Application exception handler interface definition * @author Juergen Knoedlseder */ /* __ Includes ___________________________________________________________ */ #ifdef HAVE_CONFIG_H #include #endif #include "GException.hpp" #include "GTools.hpp" /***********************************************************************//** * @brief Generic application error * * @param[in] origin Method that throws the error. * @param[in] message Optional error message. ***************************************************************************/ GException::app_error::app_error(const std::string& origin, const std::string& message) { // Set origin m_origin = origin; // Set message m_message = message; // Return return; } /***********************************************************************//** * @brief Parameter file not found * * @param[in] origin Method that throws the error. * @param[in] filename Filename that was not found. * @param[in] message Optional error message. ***************************************************************************/ GException::par_file_not_found::par_file_not_found(const std::string& origin, const std::string& filename, const std::string& message) { // Set origin and message m_origin = origin; m_message = "Parameter file \""+filename+"\" not found. " "Make sure that PFILES environment variable is set " "correctly."; // Add optional error message if (message.length() > 0) { m_message += " " + message; } // Return return; } /***********************************************************************//** * @brief Unable to open parameter file * * @param[in] origin Method that throws the error. * @param[in] filename Filename that could not be opened. * @param[in] message Optional error message. ***************************************************************************/ GException::par_file_open_error::par_file_open_error(const std::string& origin, const std::string& filename, const std::string& message) { // Set origin and message m_origin = origin; m_message = "Unable to open parameter file \""+filename+"\"."; // Add optional error message if (message.length() > 0) { m_message += " " + message; } // Return return; } /***********************************************************************//** * @brief Unable to determine users home directory * * @param[in] origin Method that throws the error. * @param[in] message Optional error message. ***************************************************************************/ GException::home_not_found::home_not_found(const std::string& origin, const std::string& message) { // Set origin and message m_origin = origin; m_message = "Unable to determine users home directory."; // Add optional error message if (message.length() > 0) { m_message += " " + message; } // Return return; } /***********************************************************************//** * @brief Unable to create pfiles directory in users home directory * * @param[in] origin Method that throws the error. * @param[in] home Users home directory. * @param[in] message Optional error message. ***************************************************************************/ GException::could_not_create_pfiles::could_not_create_pfiles(const std::string& origin, const std::string& home, const std::string& message) { // Set origin and message m_origin = origin; m_message = "Unable to create \""+home+"\"."; // Add optional error message if (message.length() > 0) { m_message += " " + message; } // Return return; } /***********************************************************************//** * @brief Unable to change access rights for pfiles directory * * @param[in] origin Method that throws the error. * @param[in] home Users home directory. * @param[in] message Optional error message. ***************************************************************************/ GException::pfiles_not_accessible::pfiles_not_accessible(const std::string& origin, const std::string& home, const std::string& message) { // Set origin and message m_origin = origin; m_message = "Could not make \""+home+"\" write accessible for " "writing of the applications parameter file."; // Add optional error message if (message.length() > 0) { m_message += " " + message; } // Return return; } /***********************************************************************//** * @brief Syntax error encountered in parameter file line * * @param[in] origin Method that throws the error. * @param[in] line Parameter file line in which syntax error occured. * @param[in] message Optional error message. ***************************************************************************/ GException::par_file_syntax_error::par_file_syntax_error(const std::string& origin, const std::string& line, const std::string& message) { // Set origin and message m_origin = origin; if (message.length() > 0) { m_message = "Syntax error occured in the following line of the " "parameter file ("+message+"): "+line; } else { m_message = "Syntax error occured in the following line of the " "parameter file: "+line; } // Return return; } /***********************************************************************//** * @brief Error encountered in parameter definition * * @param[in] origin Method that throws the error. * @param[in] name Parameter name. * @param[in] message Optional error message. ***************************************************************************/ GException::par_error::par_error(const std::string& origin, const std::string& name, const std::string& message) { // Set origin m_origin = origin; // Set message m_message = "Parameter \""+name+"\""; // Add optional error message if (message.length() > 0) { m_message += ": " + message; } // Return return; } /***********************************************************************//** * @brief Invalid command line parameter * * @param[in] origin Method that throws the error. * @param[in] arg Command line argument. * @param[in] message Optional error message. ***************************************************************************/ GException::bad_cmdline_argument::bad_cmdline_argument(const std::string& origin, const std::string& arg, const std::string& message) { // Set origin and message m_origin = origin; if (message.length() > 0) { m_message = "Invalid command line parameter encountered ("+message+ "): "+arg; } else { m_message = "Invalid command line parameter encountered: "+arg; } // Return return; }