emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Orgmode] [Babel] Handling of errors when using Ledger


From: Sébastien Vauban
Subject: [Orgmode] [Babel] Handling of errors when using Ledger
Date: Thu, 07 Oct 2010 13:55:32 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.1 (gnu/linux)

#+TITLE:     Handling of errors when using Ledger
#+LANGUAGE:  en_US

* Journal data

#+srcname: data
#+begin_src ledger :tangle journal.dat
2008/01/03 * (SCORPIOS ) SEB VAUBAN
        Assets:Bank:Checking:799997400530                               550.00 
EUR
        Assets:Bank:Transferred

2008/01/01 * ( ) UNKNOWN-PAYEE
        Assets:Bank:Checking:799997400530                                21.91 
EUR
        Expenses:Unknown
#+end_src

* Testing

** Default case

Here the results of the standards =registry= command:

#+srcname: registry-cmd
#+begin_src ledger :cmdline reg :noweb yes :session
<<data>>
#+end_src

#+results: registry-cmd
: 08-Jan-03 SEB VAUBAN            As:Ba:Che:799997400530   550.00 EUR   550.00 
EUR
:                                 Asset:Bank:Transferred  -550.00 EUR           
 0
: 08-Jan-01 UNKNOWN-PAYEE         As:Ba:Che:799997400530    21.91 EUR    21.91 
EUR
:                                 Expenses:Unknown         -21.91 EUR           
 0

This is a perfectly acceptable output. Ideally, it could be converted to a
real Org table, but that's not the purpose of this posting.

** Other default case

Here, I would like to take a look at the transactions which involve the
unknown account:

#+srcname: just-show-unknown
#+begin_src ledger :cmdline reg unknown :noweb yes :session
<<data>>
#+end_src

#+results: just-show-unknown
: 08-Jan-01 UNKNOWN-PAYEE         Expenses:Unknown         -21.91 EUR   -21.91 
EUR

Perfect result. That will serve as "demo".

** No output
   :PROPERTIES:
   :ID:       52aa2449-0c3d-4dee-ad57-8b2e916ed501
   :END:

#+srcname: no-output
#+begin_src ledger :cmdline reg unkXXXnown :noweb yes :session
<<data>>
#+end_src

#+results: no-output

** Error neither trapped nor shown

Let's imagine I thought (which was the case at some point) I needed to enclose
the parameters between quotes:

#+srcname: quoted-params
#+begin_src ledger :cmdline "reg unknown" :noweb yes :session
<<data>>
#+end_src

#+results: quoted-params

Nothing is returned. In fact, I would expect an error to be thrown, the same
way it should when run in a shell:

#+begin_src sh
ledger -f journal.dat "reg unknown"
#+end_src

that is:

: ~>ledger -f journal.dat "reg unknown"
: Error: Unrecognized command 'reg unknown'
: 
: ~>echo $?
: 1

Here, the shown results is exactly the same as in the 
[[id:52aa2449-0c3d-4dee-ad57-8b2e916ed501][No output]] case. As if
the command ended successfully, with an empty results set...

* Observations and suggestions

I don't know if this is a common problem (to Org-Babel) or only to the Ledger
part of it, but I think *we* should somehow improve the handling of errors.

- Maybe displaying a =#+results-err= block which would be what's shown on
  =/dev/stderr=, when not void?

- And having a way to display the error code would be a plus.

Best regards,
  Seb

-- 
Sébastien Vauban




reply via email to

[Prev in Thread] Current Thread [Next in Thread]