diff options
Diffstat (limited to 'debuginfo-tests/dexter/dex/utils/Exceptions.py')
-rw-r--r-- | debuginfo-tests/dexter/dex/utils/Exceptions.py | 72 |
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 |