mirror of
https://github.com/qpdf/qpdf.git
synced 2024-12-31 14:01:59 +00:00
Add QPDFJob::ConfigError exception
This commit is contained in:
parent
0a354af02c
commit
9373881cca
@ -36,12 +36,22 @@
|
||||
#include <iostream>
|
||||
#include <functional>
|
||||
#include <memory>
|
||||
#include <stdexcept>
|
||||
|
||||
class QPDFWriter;
|
||||
|
||||
class QPDFJob
|
||||
{
|
||||
public:
|
||||
// ConfigError exception is thrown if there are any usage-like
|
||||
// errors when calling Config methods.
|
||||
class QPDF_DLL_CLASS ConfigError: public std::runtime_error
|
||||
{
|
||||
public:
|
||||
QPDF_DLL
|
||||
ConfigError(std::string const&);
|
||||
};
|
||||
|
||||
QPDF_DLL
|
||||
QPDFJob();
|
||||
|
||||
|
@ -33,6 +33,11 @@
|
||||
#include <qpdf/QPDFWriter.hh>
|
||||
#include <qpdf/QIntC.hh>
|
||||
|
||||
QPDFJob::ConfigError::ConfigError(std::string const& msg) :
|
||||
std::runtime_error(msg)
|
||||
{
|
||||
}
|
||||
|
||||
namespace
|
||||
{
|
||||
class ImageOptimizer: public QPDFObjectHandle::StreamDataProvider
|
||||
|
@ -534,9 +534,7 @@ QPDFJob::CopyAttConfig::end()
|
||||
{
|
||||
if (this->caf.path.empty())
|
||||
{
|
||||
// QXXXQ usage, json, and config exceptions need to be unified
|
||||
// in some fashion.
|
||||
throw std::runtime_error("copy attachments: no path specified");
|
||||
throw QPDFJob::ConfigError("copy attachments: no path specified");
|
||||
}
|
||||
this->config.o.attachments_to_copy.push_back(this->caf);
|
||||
return this->config;
|
||||
@ -579,8 +577,7 @@ QPDFJob::AttConfig::creationdate(char const* parameter)
|
||||
{
|
||||
if (! QUtil::pdf_time_to_qpdf_time(parameter))
|
||||
{
|
||||
// QXXXQ
|
||||
throw std::runtime_error(
|
||||
throw QPDFJob::ConfigError(
|
||||
std::string(parameter) + " is not a valid PDF timestamp");
|
||||
}
|
||||
this->att.creationdate = parameter;
|
||||
@ -592,8 +589,7 @@ QPDFJob::AttConfig::moddate(char const* parameter)
|
||||
{
|
||||
if (! QUtil::pdf_time_to_qpdf_time(parameter))
|
||||
{
|
||||
// QXXXQ
|
||||
throw std::runtime_error(
|
||||
throw QPDFJob::ConfigError(
|
||||
std::string(parameter) + " is not a valid PDF timestamp");
|
||||
}
|
||||
this->att.moddate = parameter;
|
||||
@ -605,8 +601,7 @@ QPDFJob::AttConfig::mimetype(char const* parameter)
|
||||
{
|
||||
if (strchr(parameter, '/') == nullptr)
|
||||
{
|
||||
// QXXXQ
|
||||
throw std::runtime_error(
|
||||
throw QPDFJob::ConfigError(
|
||||
"mime type should be specified as type/subtype");
|
||||
}
|
||||
this->att.mimetype = parameter;
|
||||
@ -630,18 +625,17 @@ QPDFJob::AttConfig::replace()
|
||||
QPDFJob::Config&
|
||||
QPDFJob::AttConfig::end()
|
||||
{
|
||||
// QXXXQ runtime_error
|
||||
|
||||
static std::string now = QUtil::qpdf_time_to_pdf_time(
|
||||
QUtil::get_current_qpdf_time());
|
||||
if (this->att.path.empty())
|
||||
{
|
||||
throw std::runtime_error("add attachment: no path specified");
|
||||
throw QPDFJob::ConfigError("add attachment: no path specified");
|
||||
}
|
||||
std::string last_element = QUtil::path_basename(this->att.path);
|
||||
if (last_element.empty())
|
||||
{
|
||||
throw std::runtime_error("path for --add-attachment may not be empty");
|
||||
throw QPDFJob::ConfigError(
|
||||
"path for --add-attachment may not be empty");
|
||||
}
|
||||
if (this->att.filename.empty())
|
||||
{
|
||||
|
@ -52,6 +52,10 @@ int realmain(int argc, char* argv[])
|
||||
{
|
||||
usageExit(e.what());
|
||||
}
|
||||
catch (QPDFJob::ConfigError& e)
|
||||
{
|
||||
usageExit(e.what());
|
||||
}
|
||||
catch (std::exception& e)
|
||||
{
|
||||
std::cerr << whoami << ": " << e.what() << std::endl;
|
||||
|
Loading…
Reference in New Issue
Block a user