# coding: utf-8
|
|
#
|
|
# Copyright © 2010—2014 Andrey Mikhaylenko and contributors
|
|
#
|
|
# This file is part of Argh.
|
|
#
|
|
# Argh is free software under terms of the GNU Lesser
|
|
# General Public License version 3 (LGPLv3) as published by the Free
|
|
# Software Foundation. See the file README.rst for copying conditions.
|
|
#
|
|
"""
|
|
Exceptions
|
|
~~~~~~~~~~
|
|
"""
|
|
class AssemblingError(Exception):
|
|
"""
|
|
Raised if the parser could not be configured due to malformed
|
|
or conflicting command declarations.
|
|
"""
|
|
|
|
|
|
class DispatchingError(Exception):
|
|
"""
|
|
Raised if the dispatching could not be completed due to misconfiguration
|
|
which could not be determined on an earlier stage.
|
|
"""
|
|
|
|
|
|
class CommandError(Exception):
|
|
"""
|
|
Intended to be raised from within a command. The dispatcher wraps this
|
|
exception by default and prints its message without traceback.
|
|
|
|
Useful for print-and-exit tasks when you expect a failure and don't want
|
|
to startle the ordinary user by the cryptic output.
|
|
|
|
Consider the following example::
|
|
|
|
def foo(args):
|
|
try:
|
|
...
|
|
except KeyError as e:
|
|
print(u'Could not fetch item: {0}'.format(e))
|
|
return
|
|
|
|
It is exactly the same as::
|
|
|
|
def bar(args):
|
|
try:
|
|
...
|
|
except KeyError as e:
|
|
raise CommandError(u'Could not fetch item: {0}'.format(e))
|
|
|
|
This exception can be safely used in both print-style and yield-style
|
|
commands (see :doc:`tutorial`).
|
|
"""
|