X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Flibr2c2%2Ftrack.cpp;h=2cb95186e6f32237a61b16e092a5eac279a7ba13;hb=621c5c938d70ba0d155e0eda91a708db0a52c0dc;hp=cf496c41ddae554b98da55d62e67bc2b3e0179b4;hpb=9bab44d27a89602565270e71d8684fb3f2fac5be;p=r2c2.git diff --git a/source/libr2c2/track.cpp b/source/libr2c2/track.cpp index cf496c4..2cb9518 100644 --- a/source/libr2c2/track.cpp +++ b/source/libr2c2/track.cpp @@ -43,9 +43,9 @@ Track::~Track() void Track::set_block(Block *b) { if(b && !b->has_track(*this)) - throw InvalidParameterValue("Track is not in the Block"); + throw logic_error("track not in block"); if(!b && block && block->has_track(*this)) - throw InvalidState("Track is still in a Block"); + throw logic_error("track still in block"); block = b; } @@ -53,7 +53,7 @@ void Track::set_block(Block *b) Block &Track::get_block() const { if(!block) - throw InvalidState("No Block"); + throw logic_error("!block"); return *block; } @@ -116,7 +116,7 @@ void Track::check_slope() void Track::set_turnout_id(unsigned i) { if(!type.is_turnout()) - throw InvalidState("Not a turnout"); + throw logic_error("not a turnout"); turnout_id = i; layout.create_blocks(*this); @@ -128,7 +128,7 @@ void Track::set_turnout_id(unsigned i) void Track::set_sensor_id(unsigned i) { if(type.is_turnout()) - throw InvalidState("Can't set sensor on a turnout"); + throw logic_error("is a turnout"); sensor_id = i; layout.create_blocks(*this); @@ -139,9 +139,9 @@ void Track::set_sensor_id(unsigned i) void Track::set_active_path(unsigned p) { if(!turnout_id) - throw InvalidState("Not a turnout"); + throw logic_error("not a turnout"); if(!(type.get_paths()&(1< &eps = type.get_endpoints(); if(epi>=eps.size()) - throw InvalidParameterValue("TrackType::Endpoint index out of range"); + throw out_of_range("Track::get_endpoint_position"); const TrackType::Endpoint &ep = eps[epi]; @@ -176,7 +176,7 @@ float Track::get_endpoint_direction(unsigned epi) const { const vector &eps = type.get_endpoints(); if(epi>=eps.size()) - throw InvalidParameterValue("TrackType::Endpoint index out of range"); + throw out_of_range("Track::get_endpoint_direction"); const TrackType::Endpoint &ep = eps[epi]; @@ -289,7 +289,7 @@ void Track::break_links() Track *Track::get_link(unsigned i) const { if(i>links.size()) - throw InvalidParameterValue("Link index out of range"); + throw out_of_range("Track::get_link"); return links[i]; }