From: Wolfgang Bangerth Date: Thu, 2 Apr 1998 16:02:25 +0000 (+0000) Subject: One more safety test. X-Git-Tag: v8.0.0~23129 X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2b07e3eecf3214079af78464f39f0949fdc80acd;p=dealii.git One more safety test. git-svn-id: https://svn.dealii.org/trunk@125 0785d39b-7218-0410-832d-ea1e28bc413d --- diff --git a/deal.II/deal.II/include/grid/tria.h b/deal.II/deal.II/include/grid/tria.h index 97e3e13103..22de51384a 100644 --- a/deal.II/deal.II/include/grid/tria.h +++ b/deal.II/deal.II/include/grid/tria.h @@ -1880,6 +1880,13 @@ class Triangulation : public TriaDimensionInfo { * Exception */ DeclException0 (ExcInternalError); + /** + * Exception + */ + DeclException1 (ExcEmptyLevel, + int, + << "You tried to do something on level " << arg1 + << ", but this level is empty."); //@} protected: /** diff --git a/deal.II/deal.II/source/grid/tria.cc b/deal.II/deal.II/source/grid/tria.cc index 6130774957..49c87f7449 100644 --- a/deal.II/deal.II/source/grid/tria.cc +++ b/deal.II/deal.II/source/grid/tria.cc @@ -1116,10 +1116,8 @@ typename TriaDimensionInfo::raw_line_iterator Triangulation::begin_raw_line (unsigned int level) const { Assert (levellines.lines.size() == 0) - return end_line(); + Assert (levels[level]->lines.lines.size() != 0, + ExcEmptyLevel (level)); return raw_line_iterator ((Triangulation*)this, level, @@ -1142,10 +1140,8 @@ typename TriaDimensionInfo::raw_quad_iterator Triangulation::begin_raw_quad (unsigned int level) const { Assert (levelquads.quads.size() == 0) - return end_quad(); - + Assert (levels[level]->quads.quads.size() != 0, + ExcEmptyLevel (level)); return raw_quad_iterator ((Triangulation*)this, level, 0); @@ -1264,8 +1260,9 @@ Triangulation::end_quad () const { template typename TriaDimensionInfo::raw_line_iterator Triangulation::last_raw_line (const unsigned int level) const { - Assert (levellines.lines.size() != 0, + ExcEmptyLevel (level)); return raw_line_iterator ((Triangulation*)this, level, @@ -1289,7 +1286,9 @@ typename TriaDimensionInfo::raw_quad_iterator Triangulation::last_raw_quad (const unsigned int level) const { Assert (levelquads.quads.size() != 0, + ExcEmptyLevel (level)); + return raw_quad_iterator ((Triangulation*)this, level, levels[level]->quads.quads.size()-1);