Is there any way to get at the actual messages generated during the evaluation of an expression in Mathematica? Say I'm numerically solving an ODE and it blows up, like so
In[1] := sol = NDSolve[{x'[t] == -15 x[t], x[0] == 1}, x, {t, 0, 1},
Method -> "ExplicitEuler"];
In this case, I'll get the NDSolve::mxst
error, telling me the maximum number of 10000 steps was reached at t == 0.08671962566152185
. Now, if I look at the $MessageList
variable, I only receive the message name; in particular, the information about the value of t
where NDSolve
decided to quit has been lost.
Now, I can always get that information from sol
using the InterpolatingFunctionDomain
function from one of the standard add-on packages, but if I can somehow pull it out of the message, it would be quite helpful.