Sunday, May 6, 2012

Re: Catch error E123: is help correct?

On 07/05/12 04:08, John Beckett wrote:
> At ':help :catch' we see this example to catch error E123:
> :catch /^Vim\%((\a\+)\)\=:E123/
>
> Isn't the above wrong? Why not just:
> :catch /E123:/
>
> The help example has ':E123' but it means 'E123:'?
>
> What is the '^Vim...' stuff for? The messages on my system do
> not start with 'Vim' (use :s/xxx/xxx/ on an empty line to see
> error E486, or :xxx to see error E492).
>
> Other examples at ':help :catch' seem wrong to me. The list is:
> :catch /^Vim:Interrupt$/ " catch interrupts (CTRL-C)
> :catch /^Vim\%((\a\+)\)\=:E/ " catch all Vim errors
> :catch /^Vim\%((\a\+)\)\=:/ " catch errors and interrupts
> :catch /^Vim(write):/ " catch all errors in :write
> :catch /^Vim\%((\a\+)\)\=:E123/ " catch error E123
>
> Is a change needed at ':help :catch'?
>
> John
>


The exception string as caught by :catch is not identical to the error
string as displayed at the bottom of the screen if there is no :try

The current exception can be got from v:exception, but only between
:catch and :endtry. OTOH the latest error can be got from v:error.

Catching /E123:/ will catch the E123 exception thrown by Vim, but also
any exception with "E123:" in its text, thrown by :throw or triggered as
an error by :echoerr.


Best regards,
Tony.
--
If Jesus Christ were to come today, people would not even crucify him.
They would ask him to dinner, and hear what he had to say, and make fun
of it.
-- Thomas Carlyle

--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

No comments:

Post a Comment