
=========
csx.Error
=========

Raised for errors of which a non-programmer end user (especially a user of the
`csx` command-line utility) may usefully be notified.


Instantiation
=============

With a single argument::

    >>> from csx import Error

    >>> raise Error("squee")
    Traceback (most recent call last):
        ...
    csx.Error: squee

With two arguments::

    >>> raise Error("squee", 3)
    Traceback (most recent call last):
        ...
    csx.Error: line 3: squee

With three arguments::

    >>> raise Error("squee", 3, "kapow.css")
    Traceback (most recent call last):
        ...
    csx.Error: 'kapow.css', line 3: squee

With keyword arguments::

    >>> raise Error(msg="squee", line=3, source="kapow.css")
    Traceback (most recent call last):
        ...
    csx.Error: 'kapow.css', line 3: squee

    >>> raise Error(msg="squee")
    Traceback (most recent call last):
        ...
    csx.Error: squee

    >>> raise Error(msg="squee", source="kapow.css")
    Traceback (most recent call last):
        ...
    csx.Error: 'kapow.css': squee

    >>> raise Error(msg="squee", line=3)
    Traceback (most recent call last):
        ...
    csx.Error: line 3: squee

With no `msg` argument, or no arguments at all (not especially useful)::

    >>> raise Error
    Traceback (most recent call last):
        ...
    csx.Error

    >>> raise Error(line=3)
    Traceback (most recent call last):
        ...
    csx.Error: line 3

    >>> raise Error(source="kapow.css")
    Traceback (most recent call last):
        ...
    csx.Error: 'kapow.css'

    >>> raise Error(line=3, source="kapow.css")
    Traceback (most recent call last):
        ...
    csx.Error: 'kapow.css', line 3


Features
========

If `source` is "-", it's assumed to be standard input::

    >>> raise Error("squee", 3, "-")
    Traceback (most recent call last):
        ...
    csx.Error: <stdin>, line 3: squee

If `line` is 0, it´s treated as though no line number were supplied::

    >>> raise Error("squee", 0, "kapow.css")
    Traceback (most recent call last):
        ...
    csx.Error: 'kapow.css': squee

