57 lines
1.5 KiB
Python
57 lines
1.5 KiB
Python
|
# 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`).
|
||
|
"""
|