Expose cvxpy DCP trace in case of error (#173)

This commit is contained in:
robertmartin8
2020-08-29 14:17:56 +08:00
parent 86a1d38c92
commit 70221eb031
2 changed files with 3 additions and 9 deletions

View File

@@ -215,8 +215,8 @@ class BaseConvexOptimizer(BaseOptimizer):
opt.solve(solver=self.solver, verbose=True)
else:
opt.solve()
except (TypeError, cp.DCPError):
raise exceptions.OptimizationError
except (TypeError, cp.DCPError) as e:
raise exceptions.OptimizationError from e
if opt.status != "optimal":
raise exceptions.OptimizationError
self.weights = self._w.value.round(16) + 0.0 # +0.0 removes signed zero

View File

@@ -3,7 +3,6 @@ The ``exceptions`` module houses custom exceptions. Currently implemented:
- OptimizationError
"""
import traceback
class OptimizationError(Exception):
@@ -16,9 +15,4 @@ class OptimizationError(Exception):
default_message = (
"Please check your objectives/constraints or use a different solver."
)
if not (args or kwargs):
args = (default_message,)
super().__init__(*args, **kwargs)
traceback.print_exc()
super().__init__(default_message, *args, **kwargs)