// the condition which is given as first argument is valid, and if not
// throws an exception (its second argument) which will usually terminate
// the program giving information where the error occurred and what the
- // reason was. This generally reduces the time to find programming errors
+ // reason was. (A longer discussion of what exactly the @p Assert macro
+ // does can be found in the @ref Exceptions "exception documentation module".)
+ // This generally reduces the time to find programming errors
// dramatically and we have found assertions an invaluable means to program
// fast.
//
- // On the other hand, all these checks (there are over 9000 of them in the
+ // On the other hand, all these checks (there are over 10,000 of them in the
// library at present) should not slow down the program too much if you want
// to do large computations. To this end, the <code>Assert</code> macro is
// only used in debug mode and expands to nothing if in optimized
// hack with an explicit assertion at the beginning of the function. If this
// assertion is triggered, i.e. when <code>cycle</code> is larger than or
// equal to 10, an exception of type <code>ExcNotImplemented</code> is raised,
-// indicating that some functionality is not implemented for this case (the
+// indicating that some functionality is not implemented for this case -- the
// functionality that is missing, of course, is the generation of file names
-// for that case):
+// for that case. (A longer discussion of what exactly the @p Assert macro
+// does can be found in the @ref Exceptions "exception documentation module".)
template <int dim>
void Step6<dim>::output_results (const unsigned int cycle) const
{
*
* Previously set additional output is replaced by the argument given to
* this function.
+ *
+ * @see Exceptions
*/
void set_additional_assert_output (const char *const p);
* to compare the output of a program across different machines and systems,
* since the stacktrace shows memory addresses and library names/paths that
* depend on the exact setup of a machine.
+ *
+ * @see Exceptions
*/
void suppress_stacktrace_in_exceptions ();
* for example in regression tests. Please note that some fatal errors will
* still call abort(), e.g. when an exception is caught during exception
* handling.
+ *
+ * @see Exceptions
*/
void disable_abort_on_exception ();
/**
- * This is the main routine in the exception mechanism for debug mode error
- * checking. It asserts that a certain condition is fulfilled, otherwise
+ * A macro that serves as the main routine in the exception mechanism for debug mode
+ * error checking. It asserts that a certain condition is fulfilled, otherwise
* issues an error and aborts the program.
*
- * See the <tt>ExceptionBase</tt> class for more information.
+ * A more detailed description can be found in the @ref Exceptions documentation
+ * module. It is first used in step-5 and step-6.
+ * See also the <tt>ExceptionBase</tt> class for more information.
*
* @note Active in DEBUG mode only
* @ingroup Exceptions
/**
* A variant of the <tt>Assert</tt> macro above that exhibits the same runtime
- * behaviour as long as disable_abort_on_exception was not called.
+ * behavior as long as disable_abort_on_exception was not called.
*
* However, if disable_abort_on_exception was called, this macro merely prints
* the exception that would be thrown to deallog and continues normally
* without throwing an exception.
*
- * See the <tt>ExceptionBase</tt> class for more information.
+ * A more detailed description can be found in the @ref Exceptions documentation
+ * module, in the discussion about the corner case at the bottom of the page.
*
* @note Active in DEBUG mode only
* @ingroup Exceptions
/**
- * This is the main routine in the exception mechanism for run-time mode error
- * checking. It assert that a certain condition is fulfilled, otherwise issues
- * an error and aborts the program.
+ * A macro that serves as the main routine in the exception mechanism for dynamic
+ * error checking. It asserts that a certain condition is fulfilled, otherwise
+ * throws an exception via the C++ @p throw mechanism. This exception can
+ * be caught via a @p catch clause, as is shown in step-6 and all following
+ * tutorial programs.
*
- * See the <tt>ExceptionBase</tt> class for more information.
+ * A more detailed description can be found in the @ref Exceptions documentation
+ * module. It is first used in step-9 and step-13.
+ * See also the <tt>ExceptionBase</tt> class for more information.
*
* @note Active in both DEBUG and RELEASE modes
* @ingroup Exceptions