Simon,
I want to catch exceptions thrown by fePointEval.reinit(...),
where fePointEval is an object of type FEPointEvaluation.
Here is a snippet of code demonstrating the issue:
try
{
fePointEval.reinit(...);
}
catch(dealii::ExceptionBase & exception)
{
std::cout<<"exception is catched"<<std::endl;
throw MyClass(...);
}
where MyClass is derived from dealii::ExceptionBase.
The exception ExcDereferenceInvalidCell is definitely thrown because the message
" You tried to dereference a cell iterator.... "
is printed on my screen, if I try to evaluate the function attached to the
FEPointEvaluation
object outside its domain.
The documentation of deal.II rarely is clear about what "throwing an
exception" means. That depends on whether you use Assert or AssertThrow. The
former is for logic errors inherent in the program that cannot be recovered
from -- say, trying to dereference triangulation.end(). You need to fix the
program to deal with this, and so we use Assert which simply aborts the
program (even though perhaps the documentation may say that it "throws the
exception") after showing the error message.
We use AssertThrow (which really does 'throw' an exception) for situations
that are run-time errors. Say the file you opened cannot be read, or you're
out of memory -- in general, for situations where the *program* is correct,
but perhaps its *input* is not.
Best
W.
--
------------------------------------------------------------------------
Wolfgang Bangerth email: bange...@colostate.edu
www: http://www.math.colostate.edu/~bangerth/
--
The deal.II project is located at http://www.dealii.org/
For mailing list/forum options, see
https://groups.google.com/d/forum/dealii?hl=en
---
You received this message because you are subscribed to the Google Groups "deal.II User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to dealii+unsubscr...@googlegroups.com.
To view this discussion on the web visit
https://groups.google.com/d/msgid/dealii/e3b7f84f-d4ee-5854-83a4-add287e86415%40colostate.edu.