# 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: ' 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