Catch exception and print out things
parent
64d4540e9a
commit
e7a68fa6f2
|
|
@ -191,11 +191,19 @@ size_t HybridGaussianConditional::nrComponents() const {
|
||||||
/* *******************************************************************************/
|
/* *******************************************************************************/
|
||||||
GaussianConditional::shared_ptr HybridGaussianConditional::choose(
|
GaussianConditional::shared_ptr HybridGaussianConditional::choose(
|
||||||
const DiscreteValues &discreteValues) const {
|
const DiscreteValues &discreteValues) const {
|
||||||
|
try {
|
||||||
auto &[factor, _] = factors()(discreteValues);
|
auto &[factor, _] = factors()(discreteValues);
|
||||||
if (!factor) return nullptr;
|
if (!factor) return nullptr;
|
||||||
|
|
||||||
auto conditional = checkConditional(factor);
|
auto conditional = checkConditional(factor);
|
||||||
return conditional;
|
return conditional;
|
||||||
|
} catch (const std::out_of_range &e) {
|
||||||
|
GTSAM_PRINT(*this);
|
||||||
|
GTSAM_PRINT(discreteValues);
|
||||||
|
throw std::runtime_error(
|
||||||
|
"HybridGaussianConditional::choose: discreteValues does not contain "
|
||||||
|
"all discrete parents.");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* *******************************************************************************/
|
/* *******************************************************************************/
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue