summaryrefslogtreecommitdiffstats
path: root/debuginfo-tests/dexter/dex/utils/Exceptions.py
diff options
context:
space:
mode:
Diffstat (limited to 'debuginfo-tests/dexter/dex/utils/Exceptions.py')
-rw-r--r--debuginfo-tests/dexter/dex/utils/Exceptions.py72
1 files changed, 72 insertions, 0 deletions
diff --git a/debuginfo-tests/dexter/dex/utils/Exceptions.py b/debuginfo-tests/dexter/dex/utils/Exceptions.py
new file mode 100644
index 00000000000..39c0c2f1695
--- /dev/null
+++ b/debuginfo-tests/dexter/dex/utils/Exceptions.py
@@ -0,0 +1,72 @@
+# DExTer : Debugging Experience Tester
+# ~~~~~~ ~ ~~ ~ ~~
+#
+# Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+# See https://llvm.org/LICENSE.txt for license information.
+# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+"""Provides Dexter-specific exception types."""
+
+
+class Dexception(Exception):
+ """All dexter-specific exceptions derive from this."""
+ pass
+
+
+class Error(Dexception):
+ """Error. Prints 'error: <message>' without a traceback."""
+ pass
+
+
+class DebuggerException(Dexception):
+ """Any error from using the debugger."""
+
+ def __init__(self, msg, orig_exception=None):
+ super(DebuggerException, self).__init__(msg)
+ self.msg = msg
+ self.orig_exception = orig_exception
+
+ def __str__(self):
+ return str(self.msg)
+
+
+class LoadDebuggerException(DebuggerException):
+ """If specified debugger cannot be loaded."""
+ pass
+
+
+class NotYetLoadedDebuggerException(LoadDebuggerException):
+ """If specified debugger has not yet been attempted to load."""
+
+ def __init__(self):
+ super(NotYetLoadedDebuggerException,
+ self).__init__('not loaded', orig_exception=None)
+
+
+class CommandParseError(Dexception):
+ """If a command instruction cannot be successfully parsed."""
+
+ def __init__(self, *args, **kwargs):
+ super(CommandParseError, self).__init__(*args, **kwargs)
+ self.filename = None
+ self.lineno = None
+ self.info = None
+ self.src = None
+ self.caret = None
+
+
+class ToolArgumentError(Dexception):
+ """If a tool argument is invalid."""
+ pass
+
+
+class BuildScriptException(Dexception):
+ """If there is an error in a build script file."""
+
+ def __init__(self, *args, **kwargs):
+ self.script_error = kwargs.pop('script_error', None)
+ super(BuildScriptException, self).__init__(*args, **kwargs)
+
+
+class HeuristicException(Dexception):
+ """If there was a problem with the heuristic."""
+ pass
OpenPOWER on IntegriCloud