CLHEP VERSION Reference Documentation
   
CLHEP Home Page     CLHEP Documentation     CLHEP Bug Reports

Macros | Variables
whyZMthrowRethrows.txt File Reference

Macros

#define ZMthrow(userExcept)
 
#define ZMthrow(userExcept)
 

Variables

When exceptions are enabled
 
When exceptions are the ZMthrow macro looks like
 
When exceptions are the ZMthrow macro looks we know the try part will throw why not just do
 
When exceptions are the ZMthrow macro looks we know the try part will throw why not just consider how ZMthrow is typically used
 
any side effects of that construction would occur twice The semantics of throw x
 
any side effects of that construction would occur twice The semantics of throw on the other hand
 
any side effects of that construction would occur twice The semantics of throw on the other are that x is not constructed an extra time The macro used achievs this
 

Macro Definition Documentation

◆ ZMthrow [1/2]

#define ZMthrow (   userExcept)
Value:
do { \
try { throw userExcept; } \
catch ( const ZMexception & x ) { \
if ( ZMthrow_( x, __LINE__, __FILE__ ) == ZMexThrowIt ) { \
throw; \
} \
} \
} while (false)

◆ ZMthrow [2/2]

#define ZMthrow (   userExcept)
Value:
do { \
if ( ZMthrow_( x, __LINE__, __FILE__ ) == ZMexThrowIt ) { \
throw x; \
} \
} while (false)

Variable Documentation

◆ do

The simpler code would expand this to do
Initial value:
{
if ( ZMthrow_( ZMexBadThing("explanatory text"), __LINE__, __FILE__ )
== ZMexThrowIt ) {
throw ZMexBadThing("explanatory text");
}
} while (false)
Notice that the exception object is constructed twice

Definition at line 23 of file whyZMthrowRethrows.txt.

◆ enabled

When exceptions are enabled

Definition at line 1 of file whyZMthrowRethrows.txt.

◆ hand

any side effects of that construction would occur twice The semantics of throw on the other hand

Definition at line 37 of file whyZMthrowRethrows.txt.

◆ like

When exceptions are the ZMthrow macro looks like

Definition at line 13 of file whyZMthrowRethrows.txt.

◆ this

At least for we will omit this

Definition at line 41 of file whyZMthrowRethrows.txt.

◆ used

When exceptions are the ZMthrow macro looks we know the try part will throw why not just consider how ZMthrow is typically used

Definition at line 25 of file whyZMthrowRethrows.txt.

◆ x

if another namely the one associated with the parent class of x s class Finally as documented above and b returns that function s result as its own result this method calls flag into x

Definition at line 37 of file whyZMthrowRethrows.txt.

Referenced by Genfun::InterpolatingPolynomial::addPoint(), CLHEP::HepLorentzVector::boost(), CLHEP::diag_step(), CLHEP::HepStat::erf(), CLHEP::HepStat::erfQ(), CLHEP::Hurd288Engine::flat(), CLHEP::Hurd160Engine::flat(), CLHEP::gammln(), CLHEP::HepStat::gammln(), gammln1(), gammln2(), gaussianTest(), CLHEP::HepRotation::getAngleAxis(), CLHEP::NonRandomEngine::getState(), Genfun::DefiniteIntegral::Clockwork::TrapezoidQuadratureRule::integrate(), Genfun::DefiniteIntegral::Clockwork::XtMidpointQuadratureRule::integrate(), CLHEP::HepSymMatrix::invertBunchKaufman(), main(), HepGeom::Vector3D< double >::operator CLHEP::Hep3Vector(), Genfun::ASin::operator()(), Genfun::ATan::operator()(), Genfun::ACos::operator()(), Genfun::Abs::operator()(), Genfun::Sin::operator()(), Genfun::Tan::operator()(), Genfun::Theta::operator()(), Genfun::Ln::operator()(), Genfun::FunctionNegation::operator()(), Genfun::FunctionNoop::operator()(), Genfun::ConstTimesFunction::operator()(), Genfun::FunctionNumDeriv::operator()(), Genfun::Cos::operator()(), Genfun::Rectangular::operator()(), Genfun::FunctionProduct::operator()(), Genfun::FunctionQuotient::operator()(), Genfun::Sigma::operator()(), Genfun::CumulativeChiSquare::operator()(), Genfun::Sqrt::operator()(), Genfun::Square::operator()(), Genfun::X_::operator()(), Genfun::LogGamma::operator()(), Genfun::ConstPlusFunction::operator()(), Genfun::FunctionPlusParameter::operator()(), Genfun::ReverseExponential::operator()(), Genfun::FunctionSum::operator()(), Genfun::FunctionTimesParameter::operator()(), Genfun::Variable::operator()(), Genfun::Gamma::operator()(), Genfun::HermitePolynomial::operator()(), Genfun::Erf::operator()(), Genfun::IncompleteGamma::operator()(), Genfun::Exp::operator()(), Genfun::LogisticFunction::operator()(), Genfun::PeriodicRectangular::operator()(), Genfun::Exponential::operator()(), Genfun::ConstMinusFunction::operator()(), Genfun::Mod::operator()(), Genfun::ConstOverFunction::operator()(), Genfun::NonrelativisticBWDistribution::operator()(), Genfun::FunctionDifference::operator()(), Genfun::GammaDistribution::operator()(), Genfun::TrivariateGaussian::operator()(), Genfun::InterpolatingPolynomial::operator()(), Genfun::BetaDistribution::operator()(), Genfun::BivariateGaussian::operator()(), Genfun::F1D::operator()(), Genfun::PuncturedSmearedExp::operator()(), Genfun::Power::operator()(), Genfun::AssociatedLaguerre::operator()(), Genfun::FunctionConvolution::operator()(), Genfun::PtRelFcn::operator()(), Genfun::AnalyticConvolution::operator()(), XF::Pow::operator()(), XF::Product::operator()(), XF::PreMult::operator()(), XF::PostMult::operator()(), CLHEP::operator>>(), HepGeom::operator>>(), Genfun::Square::partial(), Genfun::Gaussian::partial(), Genfun::DefiniteIntegral::Clockwork::polint(), Pow(), HepGeom::BasicVector3D< float >::rotate(), HepGeom::BasicVector3D< float >::rotateY(), HepGeom::BasicVector3D< float >::rotateZ(), CLHEP::NonRandomEngine::setRandomInterval(), CLHEP::RandGauss::shoot(), skewNormalTest(), sqr(), zmex::ZMexHandlerBehavior::standardHandling(), zmex::ZMexHandler::takeCareOf(), zmex::ZMexThrowErrors::takeCareOf(), test(), test2(), testRandGauss(), testRandGaussQ(), testRandGaussT(), testRandGeneral(), testRandPoisson(), testRandPoissonQ(), testRandPoissonT(), testSkewNormal(), CLHEP::RandEngineBuilder< 2147483647 >::thirtyTwoRandomBits(), CLHEP::RandEngineBuilder< 32767 >::thirtyTwoRandomBits(), CLHEP::RandLandau::transform(), vectorTest64(), vectorTest64< NonRandomEngine >(), zmex::ZMerrnoList::write(), CLHEP::RandExpZiggurat::ziggurat_efix(), CLHEP::RandGaussZiggurat::ziggurat_nfix(), CLHEP::ZMinput2doubles(), CLHEP::ZMinput3doubles(), and CLHEP::ZMinputAxisAngle().

is
HepRotation and so forth isNear() norm2() rectify() static Rotation row1 row4(To avoid bloat in the code pulled in for programs which don 't use all these features, we split the implementation .cc files. Only isNear() goes into the original Rotation.cc) --------------------------------------- HepAxisAngle and HepEulerAngles classes --------------------------------------- These classes are very useful and simple structures for holding the result of a nice intuituve decomposition of a rotation there is no longer much content in the distinct ZOOM PhysicsVectors library The only content left in the library is the object files representing the various Exception objects When we build the CLHEP classes for the ZOOM we will set up so as to use ZOOM SpaceVector is(but we can disable namespace usage and most of our users do so at this point). What I do is leave Hep3Vector in the global namespace
zmex::ZMexThrowIt
@ ZMexThrowIt
Definition: CLHEP/Exceptions/ZMexAction.h:20
zmex::ZMthrow_
ZMexAction ZMthrow_(const ZMexception &userException, int lineNum, const char fileName[])
Definition: ZMthrow.cc:33
x
any side effects of that construction would occur twice The semantics of throw x
Definition: whyZMthrowRethrows.txt:37