NIntegrate error bound
It seems to me that there's a better approach, but one way is to define your own DownValue for this particular message. For example:
Unprotect[Message];
Message[NIntegrate::maxp, its_, int_, err_] := Sow[err]
Then
NIntegrate[Sin[x]/Sqrt[x], {x, 0, 100},
Method -> "MonteCarlo", PrecisionGoal -> 6] // Reap
(* Out: {1.07721, {{0.0761274}}} *)
From the description of the question it seems to me that using the (undocumented) option IntegrationMonitor
to obtain integration intervals and estimates might be very useful.
Here is an example:
t = Reap[NIntegrate[Sin[x]/Sqrt[x], {x, 0, 100}, PrecisionGoal -> 6,
Method -> "MonteCarlo",
IntegrationMonitor -> (Sow[
Map[{#1@"Boundaries", #1@"Integral", #1@"Error"} &, #1]] &)]];
res = t[[1]];
t = t[[2, 1]];
Take[t, -4]
More examples and explanations about the use of IntegrationMonitor
can be found in the notebook "Finding the applied NIntegrate methods.nb" attached to the community.wolfram.com discussion "Integration method used in NIntegrate".