Skip to content

Commit 49b82e3

Browse files
Improved error message on unknown type
1 parent ef2ab70 commit 49b82e3

5 files changed

+19
-3
lines changed

more_bin.cpp

+7-3
Original file line numberDiff line numberDiff line change
@@ -284,13 +284,17 @@ int main(int argc, char** argv)
284284
try {
285285
bool multiFile = (files.size() > 1);
286286
render::Renderer * renderer = NULL;
287-
try {
287+
if (render::hasDataDescr(dataType)) {
288288
renderer = new render::Renderer();
289289
renderer->setDataDescr(dataType);
290-
} catch (std::runtime_error &e) {
291-
//std::cerr << "RUNTIME ERROR:" << e.what() << "\n";
290+
} else if (prenexus::hasDataDescr(dataType)) {
292291
renderer = new prenexus::PrenexusRenderer();
293292
renderer->setDataDescr(dataType);
293+
} else {
294+
std::cout << "Unknown type \"" << dataType << "\". Allowed values are: "
295+
<< render::getKnownDataDescr() << ", "
296+
<< prenexus::getKnownDataDescr() << std::endl;
297+
return -1;
294298
}
295299
renderer->quiet(quiet);
296300
renderer->showLines(showLines);

prenexusrenderer.cpp

+4
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,10 @@ const string getKnownDataDescr()
4949
return msg.str();
5050
}
5151

52+
const bool hasDataDescr(const std::string & descr) {
53+
return (getTypes().has(descr));
54+
}
55+
5256
PrenexusRenderer::PrenexusRenderer()
5357
{
5458
this->types = getTypes();

prenexusrenderer.hpp

+2
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ namespace prenexus {
2020

2121
const std::string getKnownDataDescr();
2222

23+
const bool hasDataDescr(const std::string &);
24+
2325
class PrenexusRenderer: public render::Renderer
2426
{
2527
public:

renderer.cpp

+4
Original file line numberDiff line numberDiff line change
@@ -203,4 +203,8 @@ const std::string getKnownDataDescr()
203203
return msg.str();
204204
}
205205

206+
const bool hasDataDescr(const std::string & descr) {
207+
return (getTypes().has(descr));
208+
}
209+
206210
} // namespace render

renderer.hpp

+2
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ namespace render {
1414

1515
const std::string getKnownDataDescr();
1616

17+
const bool hasDataDescr(const std::string &);
18+
1719
class Renderer
1820
{
1921
public:

0 commit comments

Comments
 (0)