Always use our own exception tree
This commit is contained in:
+1
-1
@@ -36,7 +36,7 @@ static std::string averror_to_string(int error)
|
|||||||
}
|
}
|
||||||
|
|
||||||
MediaFileException::MediaFileException(int avError)
|
MediaFileException::MediaFileException(int avError)
|
||||||
: LmsException("MediaFileException: " + averror_to_string(avError))
|
: AvException("MediaFileException: " + averror_to_string(avError))
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+7
-1
@@ -57,7 +57,13 @@ struct StreamInfo
|
|||||||
std::size_t bitrate;
|
std::size_t bitrate;
|
||||||
};
|
};
|
||||||
|
|
||||||
class MediaFileException : public LmsException
|
class AvException : public LmsException
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
AvException(const std::string& msg) : LmsException(msg) {}
|
||||||
|
};
|
||||||
|
|
||||||
|
class MediaFileException : public AvException
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
MediaFileException(int avError);
|
MediaFileException(int avError);
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ std::string encodingToMimetype(Encoding encoding)
|
|||||||
return encodingInfo.mimetype;
|
return encodingInfo.mimetype;
|
||||||
}
|
}
|
||||||
|
|
||||||
throw std::logic_error("encoding_to_mimetype failed!");
|
throw AvException("Invalid encoding");
|
||||||
}
|
}
|
||||||
|
|
||||||
int encodingToInt(Encoding encoding)
|
int encodingToInt(Encoding encoding)
|
||||||
@@ -63,7 +63,7 @@ int encodingToInt(Encoding encoding)
|
|||||||
return encodingInfo.id;
|
return encodingInfo.id;
|
||||||
}
|
}
|
||||||
|
|
||||||
throw std::logic_error("encoding_to_int failed!");
|
throw AvException("Invalid encoding");
|
||||||
}
|
}
|
||||||
|
|
||||||
Encoding encodingFromInt(int encodingId)
|
Encoding encodingFromInt(int encodingId)
|
||||||
@@ -74,7 +74,7 @@ Encoding encodingFromInt(int encodingId)
|
|||||||
return encodingInfo.encoding;
|
return encodingInfo.encoding;
|
||||||
}
|
}
|
||||||
|
|
||||||
throw std::logic_error("encoding_from_int failed!");
|
throw AvException("Invalid encodingId");
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO, parametrize?
|
// TODO, parametrize?
|
||||||
@@ -104,7 +104,7 @@ Transcoder::init()
|
|||||||
if (!avConvPath.empty())
|
if (!avConvPath.empty())
|
||||||
LMS_LOG(TRANSCODE, INFO) << "Using transcoder " << avConvPath.string();
|
LMS_LOG(TRANSCODE, INFO) << "Using transcoder " << avConvPath.string();
|
||||||
else
|
else
|
||||||
throw std::runtime_error("Cannot find any transcoder binary!");
|
throw AvException("Cannot find any transcoder binary!");
|
||||||
}
|
}
|
||||||
|
|
||||||
Transcoder::Transcoder(boost::filesystem::path filePath, TranscodeParameters parameters)
|
Transcoder::Transcoder(boost::filesystem::path filePath, TranscodeParameters parameters)
|
||||||
|
|||||||
@@ -20,9 +20,8 @@
|
|||||||
#include "SqlQuery.hpp"
|
#include "SqlQuery.hpp"
|
||||||
|
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
|
#include <cassert>
|
||||||
#include <sstream>
|
#include <sstream>
|
||||||
#include <stdexcept>
|
|
||||||
|
|
||||||
WhereClause&
|
WhereClause&
|
||||||
WhereClause::And(const WhereClause& otherClause)
|
WhereClause::And(const WhereClause& otherClause)
|
||||||
@@ -70,8 +69,7 @@ WhereClause::get(void) const
|
|||||||
WhereClause&
|
WhereClause&
|
||||||
WhereClause::bind(const std::string& bindArg)
|
WhereClause::bind(const std::string& bindArg)
|
||||||
{
|
{
|
||||||
if (_bindArgs.size() >= static_cast<std::size_t>( std::count(_clause.begin(), _clause.end(), '?') ))
|
assert(_bindArgs.size() < static_cast<std::size_t>(std::count(_clause.begin(), _clause.end(), '?')));
|
||||||
throw std::runtime_error("Too many bind args!");
|
|
||||||
|
|
||||||
_bindArgs.push_back(bindArg);
|
_bindArgs.push_back(bindArg);
|
||||||
|
|
||||||
|
|||||||
@@ -288,7 +288,7 @@ LmsApplication::handleAuthEvent()
|
|||||||
catch (std::exception& e)
|
catch (std::exception& e)
|
||||||
{
|
{
|
||||||
LMS_LOG(UI, ERROR) << "Error while handling auth event: " << e.what();
|
LMS_LOG(UI, ERROR) << "Error while handling auth event: " << e.what();
|
||||||
throw std::runtime_error("Internal error");
|
throw LmsException("Internal error"); // Do not put details here at it appears on the user rendered html
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -483,7 +483,7 @@ LmsApplication::notify(const Wt::WEvent& event)
|
|||||||
catch (std::exception& e)
|
catch (std::exception& e)
|
||||||
{
|
{
|
||||||
LMS_LOG(UI, ERROR) << "Caught exception: " << e.what();
|
LMS_LOG(UI, ERROR) << "Caught exception: " << e.what();
|
||||||
throw std::runtime_error("Internal error");
|
throw LmsException("Internal error"); // Do not put details here at it appears on the user rendered html
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -24,6 +24,7 @@
|
|||||||
#include <Wt/WPushButton.h>
|
#include <Wt/WPushButton.h>
|
||||||
#include <Wt/Auth/Identity.h>
|
#include <Wt/Auth/Identity.h>
|
||||||
|
|
||||||
|
#include "utils/Exception.hpp"
|
||||||
#include "utils/Logger.hpp"
|
#include "utils/Logger.hpp"
|
||||||
|
|
||||||
#include "common/Validators.hpp"
|
#include "common/Validators.hpp"
|
||||||
@@ -58,7 +59,7 @@ class InitWizardModel : public Wt::WFormModel
|
|||||||
// Check if a user already exist
|
// Check if a user already exist
|
||||||
// If it's the case, just do nothing
|
// If it's the case, just do nothing
|
||||||
if (!Database::User::getAll(LmsApp->getDboSession()).empty())
|
if (!Database::User::getAll(LmsApp->getDboSession()).empty())
|
||||||
throw std::runtime_error("Admin user already created");
|
throw LmsException("Admin user already created");
|
||||||
|
|
||||||
// Create user
|
// Create user
|
||||||
Wt::Auth::User authUser = LmsApp->getDb().getUserDatabase().registerNew();
|
Wt::Auth::User authUser = LmsApp->getDb().getUserDatabase().registerNew();
|
||||||
|
|||||||
@@ -30,8 +30,9 @@
|
|||||||
#include <Wt/WStringListModel.h>
|
#include <Wt/WStringListModel.h>
|
||||||
|
|
||||||
#include "common/Validators.hpp"
|
#include "common/Validators.hpp"
|
||||||
#include "utils/Utils.hpp"
|
#include "utils/Exception.hpp"
|
||||||
#include "utils/Logger.hpp"
|
#include "utils/Logger.hpp"
|
||||||
|
#include "utils/Utils.hpp"
|
||||||
|
|
||||||
#include "LmsApplication.hpp"
|
#include "LmsApplication.hpp"
|
||||||
|
|
||||||
@@ -79,7 +80,7 @@ class UserModel : public Wt::WFormModel
|
|||||||
Database::User::pointer user = LmsApp->getDb().getUser(authUser);
|
Database::User::pointer user = LmsApp->getDb().getUser(authUser);
|
||||||
|
|
||||||
if (user == LmsApp->getUser())
|
if (user == LmsApp->getUser())
|
||||||
throw std::runtime_error("Cannot edit ourselves");
|
throw LmsException("Cannot edit ourselves");
|
||||||
|
|
||||||
auto bitrate = getBitrateLimitRow(user->getMaxAudioBitrate());
|
auto bitrate = getBitrateLimitRow(user->getMaxAudioBitrate());
|
||||||
if (bitrate)
|
if (bitrate)
|
||||||
|
|||||||
@@ -22,6 +22,7 @@
|
|||||||
#include <Wt/WApplication.h>
|
#include <Wt/WApplication.h>
|
||||||
#include <Wt/Http/Response.h>
|
#include <Wt/Http/Response.h>
|
||||||
|
|
||||||
|
#include "utils/Exception.hpp"
|
||||||
#include "utils/Logger.hpp"
|
#include "utils/Logger.hpp"
|
||||||
#include "utils/Utils.hpp"
|
#include "utils/Utils.hpp"
|
||||||
|
|
||||||
@@ -58,7 +59,7 @@ ImageResource::getDefaultCover(std::size_t size)
|
|||||||
Image::Image image;
|
Image::Image image;
|
||||||
|
|
||||||
if (!image.load( Wt::WApplication::instance()->docRoot() + unknownCoverPath ))
|
if (!image.load( Wt::WApplication::instance()->docRoot() + unknownCoverPath ))
|
||||||
throw std::runtime_error("Cannot read default cover file");
|
throw LmsException("Cannot read default cover file");
|
||||||
|
|
||||||
image.scale(size);
|
image.scale(size);
|
||||||
|
|
||||||
@@ -80,7 +81,7 @@ ImageResource::getDefaultArtistImage(std::size_t size)
|
|||||||
Image::Image image;
|
Image::Image image;
|
||||||
|
|
||||||
if (!image.load( Wt::WApplication::instance()->docRoot() + unknownArtistImagePath))
|
if (!image.load( Wt::WApplication::instance()->docRoot() + unknownArtistImagePath))
|
||||||
throw std::runtime_error("Cannot read default artist image file");
|
throw LmsException("Cannot read default artist image file");
|
||||||
|
|
||||||
image.scale(size);
|
image.scale(size);
|
||||||
|
|
||||||
|
|||||||
+3
-3
@@ -21,11 +21,11 @@
|
|||||||
|
|
||||||
#include <array>
|
#include <array>
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
#include <stdexcept>
|
|
||||||
|
|
||||||
#include <boost/crc.hpp> // for boost::crc_32_type
|
#include <boost/crc.hpp> // for boost::crc_32_type
|
||||||
#include <boost/tokenizer.hpp>
|
#include <boost/tokenizer.hpp>
|
||||||
|
|
||||||
|
#include "utils/Exception.hpp"
|
||||||
#include "utils/Logger.hpp"
|
#include "utils/Logger.hpp"
|
||||||
|
|
||||||
boost::filesystem::path searchExecPath(std::string filename)
|
boost::filesystem::path searchExecPath(std::string filename)
|
||||||
@@ -34,7 +34,7 @@ boost::filesystem::path searchExecPath(std::string filename)
|
|||||||
|
|
||||||
path = ::getenv("PATH");
|
path = ::getenv("PATH");
|
||||||
if (path.empty())
|
if (path.empty())
|
||||||
throw std::runtime_error("Environment variable PATH not found");
|
throw LmsException("Environment variable PATH not found");
|
||||||
|
|
||||||
std::string result;
|
std::string result;
|
||||||
typedef boost::tokenizer<boost::char_separator<char> > tokenizer;
|
typedef boost::tokenizer<boost::char_separator<char> > tokenizer;
|
||||||
@@ -75,7 +75,7 @@ void computeCrc(const boost::filesystem::path& p, std::vector<unsigned char>& cr
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
LMS_LOG(DBUPDATER, ERROR) << "Failed to open file '" << p.string() << "'";
|
LMS_LOG(DBUPDATER, ERROR) << "Failed to open file '" << p.string() << "'";
|
||||||
throw std::runtime_error("Failed to open file '" + p.string() + "'" );
|
throw LmsException("Failed to open file '" + p.string() + "'" );
|
||||||
}
|
}
|
||||||
|
|
||||||
// Copy back result into the vector
|
// Copy back result into the vector
|
||||||
|
|||||||
Reference in New Issue
Block a user